java - 如何在 Java 中对数字进行自定义舍入?

标签 java rounding

假设我想对 mantissa 的数字进行四舍五入大于 0.3 的为“向上”,低于 0.3 的为“向下”。

我怎样才能用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 的解决方案类似,但恕我直言,它更容易理解,因为只在一个方向上进行舍入。

关于java - 如何在 Java 中对数字进行自定义舍入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30976081/

相关文章:

java - 下一轮浮点舍入

java - Hibernate - 多对多 - 带有常量表

java - Spring Cloud微服务服务器端口强制转换异常

java - BigDecimal.ROUND_HALF_UP 和 RoundingMode.HALF_UP 之间的区别?

r - 控制数字/舍入作为基本函数中的参数

JavaScript 舍入数字

java-8 - 为什么 Java 8 的 ToIntFunction<T> 不扩展 Function<T, Integer>

java - 如何使用方法将列表从数据库 ex(team1,team2,..) 带到组合框

java - 什么是NullPointerException,我该如何解决?

SQL 舍入和截断,需要彻底解释