java 1e10,为什么Java BigDecimal返回1E + 1?

Why does this code sometimes return 1E+1 whilst for other inputs (e.g. 17) the output is not printed in scientific notation?

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());

outputs:

plain : 10000000

scientific : 10E+6