如何在不使用toString()的情况下将任何类型的Number转换为BigDecimal?

问题描述 投票:0回答:2

我现在正在使用这个方法,对任何类型的

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
是我用来存储数值的类。

java bigdecimal
2个回答
1
投票

我不会冒险,特别是如果你想从浮点类型构造

BigDecimal

在最一般的情况下,从

String
进行构建是最安全的方法。请务必谨慎使用与区域设置相关的小数分隔符。


0
投票

org.javamoney.moneta.spi.MoneyUtils.getBigDecimal(数字)

© www.soinside.com 2019 - 2024. All rights reserved.