java 浮点数转换问题

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


这个问题算是解决了。

你可能感兴趣的:(java 浮点数转换问题)