浮点数据类型是单精度32位IEEE 754浮点数,双数据类型是双精度64位IEEE 754浮点数.
这是什么意思?什么时候应该使用float而不是double,反之亦然?
我不明白为什么浮点值与double值不同.从下面的示例可以看出,float为同一操作提供的结果与double不同:
public class Test {
public static void main(String[] args) {
double a = 99999.8d;
double b = 99999.65d;
System.out.println(a + b);
float a2 = 99999.8f;
float b2 = 99999.65f;
System.out.println(a2 + b2);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
199999.45
199999.44
Run Code Online (Sandbox Code Playgroud)
你能解释一下浮动和双重之间的差异吗?