最近遇到一个坑,19.9的字符串转double变成19.89,坑死我了。现在把更改后的代码贴出来
String s = "19.9"; BigDecimal temp = BigDecimal.valueOf(Double.valueOf(s)); // 将temp乘以100 temp = temp.multiply(BigDecimal.valueOf(100)); int sum = temp.intValue(); System.out.println(sum);
这样亲测不会失去精度。最后说一句,细节很重要,特别是字符串转其他类型的时候。