代码如下:
public class mainTest { public static void main(String[] args) { System.out.println(testDouble("10.8")); System.out.println(testFloat("10.8")); System.out.println("----------------------"); System.out.println(testDouble("38.8")); System.out.println(testFloat("38.8")); } public static int testDouble(String str){ Double d = Double.valueOf(str); return (int)(d*100); } public static int testFloat(String str){ Float f = Float.valueOf(str); return (int)(f*100); } }
输出结果为:
1080 1080 ---------------------- 3879 3880
3879和3880,之间差了一。
我知道是因为精度转化导致的。
但是我想知道具体是为什么。
谢谢。