【问题标题】:How to round to nearest 5 on second decimal place如何在小数点后四舍五入到最接近的 5
【发布时间】:2019-10-09 17:59:12
【问题描述】:

我需要编写一个程序,将小数点后第二位向上或向下舍入到最接近的 5,例如,13.14 到 13.15。我到处寻找以了解如何使用 math.round() 命令但找不到它。十进制格式也可以,因为无论如何我都必须将值更改为字符串。

【问题讨论】:

  • 请记住,您可以乘以 100,这样您就不用使用小数,并使用模除法

标签: java math decimal rounding decimalformat


【解决方案1】:

四舍五入到 0.05 相当于四舍五入到最接近的 1/20。要四舍五入到任何 1/n,只需乘以 n,四舍五入到整数,然后除以(非整数除法)n。像Math.round(x * 20.0) / 20.0 这样的东西似乎就足够了。

编辑:如果精确舍入结果变得很重要,您可能想尝试对 java.math.BigDecimal 或其他一些十进制实现的实例进行最终除法。

【讨论】:

  • 如果您仍然使用 BigDecimal(对于最后的除法),您可能只想对整个事情使用 BigDecimal,因为您可以设置所需的精度和舍入模式。例如,参见 RoundingMode 类。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多