将 Java 数字转换为 BigDecimal:最好的方法

2022-01-17 00:00:00 precision numbers java bigdecimal

我正在寻找将数字转换为 BigDecimal 的最佳方法.

I am looking for the best way to convert a Number to a BigDecimal.

这够好吗?

Number number;
BigDecimal big = new BigDecimal(number.toString());

我们可以使用 toString() 方法丢失精度吗?

Can we lose precision with the toString() method ?

推荐答案

这很好,记住使用 BigDecimal 的构造函数来声明一个不是 String 类型的值是很危险的.考虑以下...

This is fine, remember that using the constructor of BigDecimal to declare a value can be dangerous when it's not of type String. Consider the below...

BigDecimal valDouble = new BigDecimal(0.35);
System.out.println(valDouble);

这不会打印 0.35,它实际上是......

This will not print 0.35, it will infact be...

0.34999999999999997779553950749686919152736663818359375

我会说你的解决方案可能是最安全的.

I'd say your solution is probably the safest because of that.

相关文章