为什么Java BigDecimal返回1E + 1?
问题内容:
为什么此代码有时返回1E + 1,而对于其他输入(例如17)却没有以科学计数法打印输出?
BigDecimal bigDecimal = BigDecimal.valueOf(doubleValue).multiply(BigDecimal.valueOf(100d)).stripTrailingZeros();
System.out.println("value: " + bigDecimal);
问题答案:
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