我碰到了Java的一个奇怪角落。(对我来说很奇怪)
double dd = 3.5;
float ff = 3.5f;
System.out.println(dd==ff);
输出结果为:true
double dd = 3.2;
float ff = 3.2f;
System.out.println(dd==ff);
输出:false
我发现,如果我们将任意两个值(例如上面例子中的float和double)与.5
或.0
进行比较,如3.5、234.5、645.0,
则输出结果为true
,即这两个值相等,否则输出结果为false
,即使它们是相等的。
我甚至尝试了使用strictfp
方法,但没有成功。
我错过了什么吗?