为什么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