【发布时间】:2012-07-20 14:25:58
【问题描述】:
我不明白为什么浮点值与双精度值不同。从下面的例子可以看出,对于相同的操作,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);
}
}
输出:
199999.45
199999.44
你能解释一下 float 和 double 之间的区别吗?
【问题讨论】:
-
其他人所说的,但在您的具体情况下,结果比浮点数可能的有效位数更宽(cfr wikipedia,7.2 位) - 另请参阅en.wikipedia.org/wiki/Single_precision
-
谢谢你的提示,那些维基文章很有趣
标签: java