Sal*_*eek 5 java decimal rounding
我正在写一个小型物理应用程序.我打算做的是进行数字舍入.问题是它不是一个固定的舍入,而是一个取决于十进制数值的变量舍入.我将解释这个问题.
总是使用半上舍入.
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因为这是我需要的要求.
我认为,如果我正确理解你想要什么,基于实验,这会起作用。如果d是BigDecimal包含数字的 a:
BigDecimal rounded = d.round(new MathContext
(d.scale() - d.precision() < 5
? d.precision() - d.scale() + 5
: 5));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
218 次 |
| 最近记录: |