条件语句返回错误

时间:2013-09-29 19:07:26

标签: java logic conditional

为什么此语句返回false?当我手动计算时,我得到114 = 114,这应该是真的:

System.out.println(114 == (114.0 / Math.PI * Math.PI));  

3 个答案:

答案 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 ...