Информация об изменениях

Сообщение Re: Java пытается маскировать неточную природу double-ов от 21.02.2022 6:48

Изменено 21.02.2022 7:21 netch80

Re: Java пытается маскировать неточную природу double-ов
Здравствуйте, vsb, Вы писали:

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


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


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

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


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

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

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

Тут.
Re: Java пытается маскировать неточную природу double-ов
Здравствуйте, 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, в дотнете эту глупость не повторили.