Java 如何在不使用toString()的情况下将任何类型的数字转换为BigDecimal?
我现在使用这个方法,对任何类型的Java 如何在不使用toString()的情况下将任何类型的数字转换为BigDecimal?,java,bigdecimal,Java,Bigdecimal,我现在使用这个方法,对任何类型的数字执行加法: 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
数字执行加法:
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));
}
公共客户号添加(TA、TB){
BigDecimal numberA=新的BigDecimal(b.toString());
BigDecimal numberB=新的BigDecimal(a.toString());
返回新的CustomNumber(numberA.add(numberB));
}
我使用BigDecimal,因为据我所知,这是执行精确计算的最佳解决方案。如果没有toString()
方法,如何更改此方法以获得相同的结果CustomNumber
是我用来存储数值的类。我不会冒险,特别是如果你想从浮点类型构造一个BigDecimal
在大多数情况下,从字符串
构造是最安全的方法。始终对依赖于区域设置的十进制分隔符要格外小心。使用toString()
有什么问题吗?不应该使用valueOf()
静态方法。Java真的,真的不会让你试图泛化像这样的Number
类型。放弃并选择一个Number
类型在整个程序中使用。