Почему процент возвращает 0, когда ставка = 0,085, например?преобразование десятичного числа в int в C#
int percentage = (int)rate*100;
Почему процент возвращает 0, когда ставка = 0,085, например?преобразование десятичного числа в int в C#
int percentage = (int)rate*100;
Операция литья применяется перед умножением. Попробуйте:
int percentage = (int)(rate*100);
Edit: Вот C# руководство по order of operator evaluation.
Он возвращает 0 из-за порядка операций. rate
отливается как целое число перед умножением.
Для выполнения этой работы вам нужен дополнительный набор круглых скобок.
int percentage = (int)(rate*100);
Try:
int percentage = (int)(rate * 100);
Try:
int percentage = (int)(rate*100);
Вы преобразования rate
к междунар, прежде чем вы умножьте его иначе.
(int) 0.085 == 0 –