if(0.030 != (0.530-0.500+0+0)){$s = 0.530-0.500+0+0;$s = 0.03 - $s;}这居然不相等??相减后居然不是0这PHP 是外星计算法吗?回复讨论(解决方案)请你补习一下有关浮点数的知识即使我$f = (0.530-0.500+0+0)*1000;$a = (0.030*1000);$s = (0.530-0.500+0+0)*1000;$ssa = $a - $s;这样也错啊请你补习一下有关浮点数的知识$f = (0.530-0.500+0+0)*1000;$a = (0.030*1000);$ssa = doubleval($a) - doubleval($f);这样写都错...... 他是怎么计算的啊?怎么说呢简单的十进制分数不能在丢失一点点精度的情况下转化为二进制的格式,浮点数永远不会精确到最后一位,那么在PHP中,简单的浮点数运算是很有可能丢失精度,从而造成计算的结果出现混乱怎么说呢简单的十进制分数不能在丢失一点点精度的情况下转化为二进制的格式,浮点数永远不会精确到最后一位,那么在PHP中,简单的浮点数运算是很有可能丢失精度,从而造成计算的结果出现混乱那像这样的计算,应该怎么来做?请你补习一下有关浮点数的知识$f = (0.530-0.500+0+0)*1000;$a = (0.030*1000);$ssa = doubleval($a) - doubleval($f);这样写都错...... 他是怎么计算的啊?这个不光php这样,JAVA也有着现象的所以PHP要解决浮点数的办法有2个一个是if(0.030 != (0.530-0.500+0+0)){$s = 0.53-0.5;$s = 0.03-"$s";echo $s;}把变量的那个用双引号加起来就OK了还有的一个办法就是用round函数了看来你还得补习一下“有效数”的相关知识
