在我的应用程序中,所有 BigDecimal 数字都被缩放为具有两位小数。换句话说,每次我在代码中创建一个新的 BigDecimal 时,我也需要使用方法scale:
BigDecimal x = BigDecimal.ZERO;
x.setScale(2, RoundingMode.HALF_UP);
因此,为了最大限度地减少工作量,我想创建自定义 BigDecimal 类型,例如:
public class CustomBigDecimal extends BigDecimal {
public CustomBigDecimal(String val) {
super(val);
this.setScale(2, RoundingMode.HALF_UP);
}
}
I know this.setScale(2, RoundingMode.HALF_UP);
没有完成这项工作,但我找不到完成它的方法,这可能吗?
您可以简单地为自己创建一个方法来创建一个为零的 BigDecimal。就像是:
public static BigDecimal scaled(String val) {
BigDecimal x = new BigDecimal(val);
return x.setScale(2, RoundingMode.HALF_UP);
}
将其放入辅助类中,例如 BigDecimal Helper、BigDecimal Factory 或其他类。 :)
编辑:稍微更改它以返回 setScale 的结果,因为 BigDecimal 是不可变的。并进一步回答最初的问题:您所写的内容是不可能的,因为对象的状态不会随 setScale() 改变。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)