为什么此语句返回false?当我手动计算时,我得到114 = 114,这应该是真的:
System.out.println(114 == (114.0 / Math.PI * Math.PI));
答案 0 :(得分:2)
那是因为通过使用Math.PI
引入了浮点运算,这不像实际的整数运算那么精确。右侧的结果实际上是114.00000000000001,这个值非常接近114,但不完全正确。
答案 1 :(得分:1)
尝试使用以下代码:
double res=114.0 / Math.PI * Math.PI;
System.out.println(res);
结果是:114.00000000000001不是114。
答案 2 :(得分:0)
因为
System.out.println(114.0 / Math.PI * Math.PI);
将打印
114.00000000000001
你可以尝试
System.out.println(114 == (int)(114.0 / Math.PI * Math.PI));
(将float转换为int)这将返回true ...