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

小数点后的.79转换为.78后的意思是,我真的想知道为什么转换后我没有得到完全相同的值,以及哪个逻辑正在执行此操作?

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

最佳答案

Float仅保证准确存储6 significant decimal digits。对于344741.79,最接近的2个Float是344741.78125(打印为344741.78)和344741.8125(打印为344741.8)。

关于java - Java中 double 到Float类转换的差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42850753/

10-09 04:10