Math.round(4816.5) 正在返回4817.
我想只在小数> 5而不是> = 5时才向上舍入.所以在这里,我需要结果为4816.
请给我解决方案.
Math.round(n)基本上是相同的,(long) Math.floor(n + 0.5)你可以稍微修改一下这个算法:
long rounded = (long) Math.ceil(n - 0.5);
Run Code Online (Sandbox Code Playgroud)
使用HALF_DOWN的RoundingMode 并让Java处理剩下的事情:
BigDecimal value = new BigDecimal(4816.5);
value = value.setScale(0, RoundingMode.HALF_DOWN);
long result = value.longValue();
System.out.println(result);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4181 次 |
| 最近记录: |