我正在尝试以下代码,但在执行344741.79
后,值显示为344741.78
小数位.79
之后的意思转换为.78
,我真的想知道为什么我在转换后没有获得完全相同的值以及逻辑是这样做的?
public static void main(String[] s) {
double a = 344741.79;
System.out.print(new Float(a));
}
答案 0 :(得分:1)
Float
只能保证准确存储6 significant decimal digits。在344741.79的情况下,2个最近的Float
是344741.78125(打印为344741.78
)和344741.8125(打印为344741.8
)。