Java奇怪的计算或类型提升规则

时间:2015-01-05 00:49:53

标签: java type-promotion

我读了一本关于Java的书,我遇到了一个奇怪的问题。如果你能帮我弄清楚会发生什么事情会非常好:)请看一下代码:

class Promote {
    public static void main (String args[]) {
        byte b = 42;
        char c = 'a';
        short s = 1024;
        int i = 50000;
        float f = 5.67f;
        double d = .1234;
        double x = 238.14 + 515 - 126.3616;
        double result = (f * b) + (i / c) - (d * s); // (5.67 * 42) + (50000 / 97) - (0.1234 * 1024)
        System.out.println((f * b) + " + " + (i / c) + " - " + (d * s) + " = " + result); // 238.14 + 515 - 126.3616 = 626.7784
    }
}

我在评论中的计算似乎是合乎逻辑的,但实际输出是626.7784146484375我不知道为什么我这个0.0000146484375差异。请告诉我吧!谢谢。

0 个答案:

没有答案