0,1 поплавка больше 0,1 двойного. Я ожидал, что это будет ложным [дубликат]

На этот вопрос уже есть ответ здесь:

Если оператор <работает правильно для типов с плавающей точкой, почему мы не можем использовать его для проверки на равенство? 5 ответов

Позволять:

double d = 0.1;
float f = 0.1;

должно выражение

(f > d)

вернутьtrue или жеfalse?

Эмпирически, ответtrue, Тем не менее, я ожидал, что это будетfalse.

Как0.1 не может быть идеально представлен в двоичном15 в16 десятичные цифры точности, а число с плавающей точкой имеет только7, Итак, они оба меньше0.1в то время как двойник ближе к0.1.

Мне нужно точное объяснениеtrue.

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

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