Не поможете разобраться с методом Math.rint в java?
Почему дробные числа с помощью метода Math.rint с нечетной целой частью и 5 после запятой (например, 5,5) округляются в большую сторону, а числа с четной целой частью и 5 после запятой (например, 6.5) в меньшую сторону?
"The Java programming language requires that floating-point arithmetic behave as if every floating-point operator rounded its floating-point result to the result precision. Inexact results must be rounded to the representable value nearest to the infinitely precise result; if the two nearest representable values are equally near, the one with its least significant bit zero is chosen. This is the IEEE 754 standard's default rounding mode known as round to nearest."
Технически же rint реализован так, что берётся значение double, которое уже не в состоянии хранить дробную часть оно прибавляется к значению аргумента. Тут и происходит округление по вышеприведённой спеке. См. grepcode.com/file/repository.grepcode.com/java/roo...