请教一个关于精度转换的问题(分转元)。

代码如下:

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,之间差了一。

我知道是因为精度转化导致的。

但是我想知道具体是为什么。

谢谢。

Its_forever
浏览 2979回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP