java中的double到Float类转换的差异

时间:2017-03-17 06:35:09

标签: java casting floating-point type-conversion

我正在尝试以下代码,但在执行344741.79后,值显示为344741.78

小数位.79之后的意思转换为.78,我真的想知道为什么我在转换后没有获得完全相同的值以及逻辑是这样做的?

public static void main(String[] s) {
    double a = 344741.79;
    System.out.print(new Float(a));
}

1 个答案:

答案 0 :(得分:1)

Float只能保证准确存储6 significant decimal digits。在344741.79的情况下,2个最近的Float是344741.78125(打印为344741.78)和344741.8125(打印为344741.8)。