我现在正在使用这个方法,对任何类型的
Number
执行加法:
public <T extends Number> CustomNumber add(T a, T b) {
BigDecimal numberA = new BigDecimal(b.toString());
BigDecimal numberB = new BigDecimal(a.toString());
return new CustomNumber<>(numberA.add(numberB));
}
我使用 BigDecimal,因为据我所知这是执行精确计算的最佳解决方案。我如何更改此方法,以在不使用
toString()
方法的情况下获得相同的结果? CustomNumber
是我用来存储数值的类。
我不会冒险,特别是如果你想从浮点类型构造
BigDecimal
。
在最一般的情况下,从
String
进行构建是最安全的方法。请务必谨慎使用与区域设置相关的小数分隔符。
org.javamoney.moneta.spi.MoneyUtils.getBigDecimal(数字)