至少有两位小数的 BigDecimal
BigDecimal with at least two decimals
我有 BigDecimal
个值,我希望它们至少有两位小数,但我不想 trim 其余的。
所以 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
是否有内置方法或更优雅的方法来做到这一点?
我不能使用 setScale
,因为我想保留额外的小数。
其实你还可以用setScale
,你只需要检查当前的比例是否大于2:
public static void main(String[] args) {
BigDecimal bd = new BigDecimal("3.001");
bd = bd.setScale(Math.max(2, bd.scale()));
System.out.println(bd);
}
使用此代码,比例小于 2 的 BigDecimal
(如 "3"
)将其比例设置为 2,如果不是,它将保持其当前比例。
我有 BigDecimal
个值,我希望它们至少有两位小数,但我不想 trim 其余的。
所以 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
是否有内置方法或更优雅的方法来做到这一点?
我不能使用 setScale
,因为我想保留额外的小数。
其实你还可以用setScale
,你只需要检查当前的比例是否大于2:
public static void main(String[] args) {
BigDecimal bd = new BigDecimal("3.001");
bd = bd.setScale(Math.max(2, bd.scale()));
System.out.println(bd);
}
使用此代码,比例小于 2 的 BigDecimal
(如 "3"
)将其比例设置为 2,如果不是,它将保持其当前比例。