我正在尝试将 BigDecimals 四舍五入到小数点后三位。例如,假设我有一些
BigDecimal X = 1362.59633
我想要得到:
1362.596
这就是我正在做的事情:
BigDecimal Y = X.round(new MathContext(3));
但我不断得到这个:1.36E+3。 这种情况我该怎么办? 谢谢
最佳答案
您实际上不必四舍五入,但必须设置 BigDecimal
的小数位数:
BigDecimal X = new BigDecimal("1362.59633");
X = X.setScale(3, BigDecimal.ROUND_HALF_UP);
System.out.println(X.doubleValue());
这将打印出1362.596
。
请注意,setScale
返回一个新的 BigDecimal
,因此您必须像我在示例中那样分配它。
编辑:有多种舍入策略。检查 BigDecimal 类以供引用。我编辑了答案以使用 BigDecimal.ROUND_HALF_UP
。
关于java - BigDecimal 方法发送格式化数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34878298/