Re: Java пытается маскировать неточную природу double-ов
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 21.02.22 06:48
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Вчера Java заставила меня немножко посомневаться в своей компетентности.


vsb>Известно, что число 0.3 не представимо в двоичном виде. То, как оно представляется, на самом деле представляет число 0.299999999999999988897769753748434595763683319091796875000000 (да, я заморочился и проверил).


Последние 6 нулей можно было бы и срезать. Не принципиально, но для совсем уж строгости.

vsb>А вы как думаете? Может я не прав и это норма в современных языках? Лично мне ближе подход C++, который показывает математически точное значение при заданной точности.


Я полностью согласен, что подход Java некорректен.

Вот ещё голос в ту же сторону.

The Java specification requires a troublesome double rounding in this situation.

Тут.

UPD: Судя по свежему dotnet-sdk, в дотнете эту глупость не повторили.
The God is real, unless declared integer.
Отредактировано 21.02.2022 7:21 netch80 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.