Java 大十进制减法的结果是指数的

Java 大十进制减法的结果是指数的,java,bigdecimal,exponential,Java,Bigdecimal,Exponential,我有以下代码 BigDecimal b1 = new BigDecimal("1.12345678912345678"); BigDecimal b2 = new BigDecimal("1.12345678912345678"); System.out.println(b1.subtract(b2)); 输出为: 0E-17 如何避免指数格式?bigdecimal的toPlainString方法将返回字符串,我不希望这样。我希望我的bigdecimal对象不带指数值。您正在调

我有以下代码

BigDecimal b1 = new BigDecimal("1.12345678912345678");
    BigDecimal b2 = new BigDecimal("1.12345678912345678");
    System.out.println(b1.subtract(b2));
输出为: 0E-17


如何避免指数格式?bigdecimal的toPlainString方法将返回字符串,我不希望这样。我希望我的bigdecimal对象不带指数值。

您正在调用
println(object)
方法,它在内部使用
object.toString()
方法

如果需要指数,则使用科学记数法返回此BigDecimal的字符串表示形式。


您关于
toPlainString()
方法和想要一个bigdecimal对象的声明没有意义,因为区别只是
toString()
方法和
toPlainString()
方法(两者都返回不同格式的字符串表示形式)之间的区别。在这两种情况下,您将拥有相同的
BigDecimal
对象。区别只是在打印时。

实际上我不想打印。假设结果为b3=b1-b2。现在我想把b3和b4相加。我的目标不是印刷。但是要做进一步的计算。有可能吗?@user2354566,有可能。。。只需使用对象进行所有计算。。。最后,当您想要打印出来时,请使用
toPlainString()
方法。