double k=2.658;
float n=2.685F;
System.out.println(k==n);//程序
两个数值相等为什么是false啊
不能直接比较,而是计算误差范围。 不能直接if(a==b) 而是要equal(a,b) equal 函数自己写 bool equal(double num1,double num2) { if((num1-num2>-0.000001)&&(num1-num2)<0.000001)returntrue; else return false; }
貌似你的k和n本来写的就不一样。
首先,两个值肯定不一样;其次,就算值一样,但是类型不同精度不同,值得也不一定一样。
float a = 0.000000000000000000000000000000000000000000001f;
float b = 0.00000000000000000000000000000000000000000000210194f;
boolean c = a == b;
System.out.println(c);
最后显示是true