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