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

看到一个PHP题目,很费解不知道原因,求高人
先目测一下输出结果是什么,然后再去实践一下,会很吃惊的。。。求原因。。

<?
$v1 = 60.06;
$v2 = 60.05+0.01;
if ($v1==$v2)
echo "相等";
else
echo "不相等";


if ($v1===$v2)
echo "相等";
else
echo "不相等";
?>




------解决方案--------------------
刚测试了下,都是不相等
如第一个不相等了,第二个更不会相等的。
这个涉及到浮点数的存储,浮点数不是精确存储的
------解决方案--------------------
给$v2加上双引号,再比较久可以了 
if($v1=="$v2")
------解决方案--------------------
楼主注意看本版置顶的帖子.内有常见问题解答
------解决方案--------------------
数据类型问题。
------解决方案--------------------
这个是浮点数存储的问题,LZ去看看基础编程的浮点数就明白了
------解决方案--------------------
http://www.enjoyphp.com/2011/development/php/float-cm/
楼主看这文章吧,
------解决方案--------------------
后面精确位的问题,
接分
------解决方案--------------------
这个真没试过!