为什么Java BigDecimal返回1E + 1?

为什么此代码有时返回1E + 1,而对于其他输入(例如17)却没有以科学计数法打印输出?

BigDecimal bigDecimal = BigDecimal.valueOf(doubleValue).multiply(BigDecimal.valueOf(100d)).stripTrailingZeros();

System.out.println("value: " + bigDecimal);

回答:

使用bigDecimal.toPlainString():

 BigDecimal bigDecimal = BigDecimal.valueOf(100000.0)

.multiply(BigDecimal.valueOf(100d))

.stripTrailingZeros();

System.out.println("plain : " + bigDecimal.toPlainString());

System.out.println("scientific : " + bigDecimal.toEngineeringString());

输出:

平原:10000000

科学的:10E + 6

以上是 为什么Java BigDecimal返回1E + 1? 的全部内容, 来源链接: utcz.com/qa/432397.html

回到顶部