String转double失去精度问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35717984/article/details/81144981

最近遇到一个坑,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);

这样亲测不会失去精度。最后说一句,细节很重要,特别是字符串转其他类型的时候。

猜你喜欢

转载自blog.csdn.net/sinat_35717984/article/details/81144981