Результат приведения double к int неверен
Кажется, есть какая-то неясная ошибка округления, когда я запускаю следующий код:
int roundedTotal = (int)(PriorityJob * 100.0);
ПервоначальноPriorityJob = 1.4
а такжеroundedTotal
не определено ОценкаPriorityJob * 100.0
в этот момент дает140
, потомroundedTotal = 139
.
По-видимому, 140.0 интерпретируется как 139.99999. Это недостаток двигателя с плавающей запятой? Я никогда не видел ничего подобного.