日期:2014-05-17  浏览次数:20485 次

PHP 小数的计算方式太坑爹了吧?
if(0.030 != (0.530-0.500+0+0))
{
   $s = 0.530-0.500+0+0;
   $s = 0.03 - $s;
}


这居然不相等??
相减后居然不是0 

这PHP 是外星计算法吗?

------解决方案--------------------
引用:
Quote: 引用:

请你补习一下有关浮点数的知识

$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函数了