项目里,需要把以元为单位的数据改为以分为单位,并放入数据库。我写了以下的转换方法,0.58的结果有并不是想象中的58,而是57。但0.59又是正常的。
Double d1 = Double.parseDouble("0.58")*100;
Integer w1= d1.intValue();
System.out.println(w1);//57
Double d2 = Double.parseDouble("0.59")*100;
Integer w2= d2.intValue();
System.out.println(w2);//59
于是我谷歌了一下,是浮点数转换的问题。所以在这里再加上math.rint()方法。
Double d1 = Double.parseDouble("0.58") * 100;
d1 = Math.rint(d1);
Integer w1 = d1.intValue();
System.out.println(w1);// 58
Double d2 = Double.parseDouble("0.59") * 100;
d2 = Math.rint(d2);
Integer w2 = d2.intValue();
System.out.println(w2);// 59
这个问题算是解决了。
博客探讨了在将浮点数转换为整数时遇到的精度问题,特别是在货币单位从元到分的转换过程中。通过使用Math.rint()方法成功解决了数值不准确的问题。
2381

被折叠的 条评论
为什么被折叠?



