我正在尝试下面的代码,但是执行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/