我有以下代码。
BigDecimal b1 = new BigDecimal("1.12345678912345678");
BigDecimal b2 = new BigDecimal("1.12345678912345678");
System.out.println(b1.subtract(b2));
输出是: 0E-17
如何避免指数格式? bigdecimal的方法toPlainString将返回String,我不希望这样。我希望我的bigdecimal对象在那里没有指数值。
答案 0 :(得分:2)
您正在调用println(Object)
方法,它在内部使用Object.toString()
方法。
来自JavaDoc of BigDecimal.toString()
如果需要指数,则返回此BigDecimal的字符串表示形式,使用科学记数法。
关于toPlainString()
方法并且想要一个大十字形对象的陈述没有意义,因为差异只在toString()
方法和toPlainString()
方法之间( Both)其中返回不同格式的字符串表示)。在这两种情况下,您都会拥有相同 BigDecimal
对象。差异只在印刷时。