当我尝试将以下字符串解析为浮点数和双精度浮点数时:
我得到了两个不同的结果。
我得到了两个类似的结果。
String abc = "8.40";
System.out.println("Double Value: " + Double.parseDouble(abc) * 100);
System.out.println("Float Value: " + Float.parseFloat(abc) * 100);
我得到了两个不同的结果。
Double Value: 840.0
Float Value: 839.99994
但是当我用浮点数和双精度数乘以10或1000时,它们的结果非常相似。
String abc = "8.40";
System.out.println("Double Value: " + Double.parseDouble(abc) * 10);
System.out.println("Float Value: " + Float.parseFloat(abc) * 10);
我得到了两个类似的结果。
Double Value: 84.0
Float Value: 84.0
当我尝试这样做:
String abc = "8.40";
System.out.println("Double Value: " + Double.parseDouble(abc) * 1000);
System.out.println("Float Value: " + Float.parseFloat(abc) * 1000);
我得到了两个类似的结果。
Double Value: 8400.0
Float Value: 8400.0
Float
比Double
精度更低。 - VyacheslavSystem.out.println("Float Value: "+Float.parseFloat("8.40f")*100);
时,是否会发生相同的情况? - mambax