这两个电话有什么区别?(有没有?)
// 1.
new BigDecimal("3.53456").round(new MathContext(4, RoundingMode.HALF_UP));
// 2.
new BigDecimal("3.53456").setScale(4, RoundingMode.HALF_UP);
Run Code Online (Sandbox Code Playgroud) 我有一个BigDecimal,其值为450.90,我想要向上舍入到下一个空洞整数值,然后打印没有任何小数点的整数值,就像这样;
Val:450.90 - > Rounded:451.00 - >输出:451
Val:100.00001 - > Rounded:101.00000产量:101
检查了一些解决方案,但我没有得到预期的结果,继承我的代码;
BigDecimal value = new BigDecimal(450.90);
value.setScale(0, RoundingMode.HALF_UP); //Also tried with RoundingMode.UP
return value.intValue();
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有BigDecimal值,我希望它们至少有两个十进制数字,但我不想修剪其余部分。
所以3应该导致3.00,但3.001应该留下3.001。
我知道我可以通过简单地添加来做到这一点0.00:
new BigDecimal("3").add(new BigDecimal("0.00")) //=> 3.00
new BigDecimal("3.001").add(new BigDecimal("0.00")) //=> 3.001
Run Code Online (Sandbox Code Playgroud)
是否有内置方法或更优雅的方法来做到这一点?
我不能使用setScale,因为我想在它们存在时保留额外的小数。