При выполнении Float.toString(68.1992069267325) я ожидал, что Java вернет 68.19921.
Вместо этого я получаю 68.1992.
После дальнейшего исследования кажется, что точка округления несколько произвольна, а не равна 5-я граница (например, я ожидаю 68,199205 с округлением в большую сторону, 68,19920499999 с округлением в меньшую сторону)
> println Float.toString(68.1992069267325)
> println Float.toString(68.1992070000000)
> println Float.toString(68.1992071000000)
> println Float.toString(68.1992072000000)
> println Float.toString(68.1992073000000)
> println Float.toString(68.1992074000000)
> println Float.toString(68.1992075000000)
> println Float.toString(68.1992076000000)
> println Float.toString(68.1992077000000)
> println Float.toString(68.1992078000000)
> println Float.toString(68.1992079000000)
> println Float.toString(68.1992079267325)
68.1992
68.1992
68.1992
68.1992
68.1992
68.19921
68.19921
68.19921
68.19921
68.19921
68.19921
68.19921
Подробнее здесь: https://stackoverflow.com/questions/716 ... -off-point