par*_*rkr 26 java floating-point bigdecimal
为什么这个代码有时会返回1E + 1,而对于其他输入(例如17),输出不会以科学计数法打印?
BigDecimal bigDecimal = BigDecimal.valueOf(doubleValue).multiply(BigDecimal.valueOf(100d)).stripTrailingZeros();
System.out.println("value: " + bigDecimal);
Run Code Online (Sandbox Code Playgroud)
dfa*_*dfa 43
BigDecimal bigDecimal = BigDecimal.valueOf(100000.0)
.multiply(BigDecimal.valueOf(100d))
.stripTrailingZeros();
System.out.println("plain : " + bigDecimal.toPlainString());
System.out.println("scientific : " + bigDecimal.toEngineeringString());
Run Code Online (Sandbox Code Playgroud)
输出:
plain : 10000000 scientific : 10E+6