项目里,需要把以元为单位的数据改为以分为单位,并放入数据库。我写了以下的转换方法,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
这个问题算是解决了。