【发布时间】:2014-05-20 18:39:22
【问题描述】:
我正在编写一个小型物理应用程序。我打算做的是进行数字四舍五入。问题在于它不是固定舍入,而是取决于小数位数的值的可变舍入。我会解释这个问题。
- 我总是需要保留整个整数部分(如果有)和前五位小数(如果有)。
-
始终使用四舍五入。
21.1521421056 变为 21.15214
34.1521451056 变为 34.15215 -
如果结果只包含十进制数字,则:
-
如果前五位数字包括非零数字,则保留它们。
0.52131125 变为 0.52131
0.21546874 变为 0.21547
0.00120012 变成 0.0012 -
如果前五位都是零位 0.00000 则下降到包括非零位的前五位。
0.0000051234 变为 0.0000051234
0.000000000000120006130031 变为 0.00000000000012001
-
我需要在使用BigDecimal 时进行此舍入,因为这是我的需要。
【问题讨论】:
-
看来您必须手动完成(编写自己的代码),我认为没有一种方法可以进行这种特定类型的舍入(但我可能错了)。
-
我同意这很奇怪,以至于您必须进行一些编码...但是
BigDecimal是一个很好的基础;只需根据值将比例设置为您需要的值。 -
@Cruncher if >4 places right of the first non-zero> 与我的解释一致;包括非零数字的前五位数字(点之后)。那么就OK了。