Здравствуйте, 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, в дотнете эту глупость не повторили.