如何对 Java 中的数字进行自定义舍入?
How to do custom rounding of numbers in Java?
假设我想对 mantissa 大于 0.3 'up' 和小于 'down' 的数字进行舍入。
如何在 Java 中完成?
我唯一想到的是Math.round()
,但我似乎无法使其遵循某种规则。
Math.floor(x+0.7)
应该这样做。
这应该适用于任意尾数。只需将偏移量添加到您的值的下一个整数并向下舍入。
四舍五入是按楼层进行的。以下是 java API 对地板说的话:
Returns the largest (closest to positive infinity) double value that
is less than or equal to the argument and is equal to a mathematical
integer.
这个解决方案类似于@Thomas Stets 的解决方案,但恕我直言,它更容易理解,因为舍入只在一个方向上完成。
假设我想对 mantissa 大于 0.3 'up' 和小于 'down' 的数字进行舍入。
如何在 Java 中完成?
我唯一想到的是Math.round()
,但我似乎无法使其遵循某种规则。
Math.floor(x+0.7)
应该这样做。
这应该适用于任意尾数。只需将偏移量添加到您的值的下一个整数并向下舍入。 四舍五入是按楼层进行的。以下是 java API 对地板说的话:
Returns the largest (closest to positive infinity) double value that is less than or equal to the argument and is equal to a mathematical integer.
这个解决方案类似于@Thomas Stets 的解决方案,但恕我直言,它更容易理解,因为舍入只在一个方向上完成。