Пусть:
double d = 0.1;
float f = 0.1;
следует выражение
(f > d)
return true
или false
?
Эмпирически, ответ true
. Однако я ожидал, что это будет false
.
Поскольку 0.1
не может быть идеально представлен в двоичном формате, а double имеет от 15
до 16
десятичные цифры точности, а float имеет только 7
. Таким образом, оба они меньше 0.1
, а double ближе к 0.1
.
Мне нужно точное описание true
.