Результат приведения double к int неверен

Кажется, есть какая-то неясная ошибка округления, когда я запускаю следующий код:

int roundedTotal = (int)(PriorityJob * 100.0);

ПервоначальноPriorityJob = 1.4 а такжеroundedTotal не определено ОценкаPriorityJob * 100.0 в этот момент дает140, потомroundedTotal = 139.

По-видимому, 140.0 интерпретируется как 139.99999. Это недостаток двигателя с плавающей запятой? Я никогда не видел ничего подобного.

Ответы на вопрос(1)

Ваш ответ на вопрос