比较php中的浮点数我想比较一下PHP中的两个浮点,如下面的示例代码所示:$a = 0.17;$b = 1 - 0.83; //0.17if($a == $b ){
echo 'a and b are same';}else {
echo 'a and b are not same';}在此代码中,它返回else条件而不是if条件,即使$a和$b都是一样的。有什么特殊的方法来处理/比较PHP中的浮点数吗?如果是,请帮助我解决这个问题。或者我的服务器配置有问题吗?
3 回答
浮云间
TA贡献1829条经验 获得超4个赞
$a
.17
$b
if (abs(($a-$b)/$b) < 0.00001) { echo "same";}
万千封印
TA贡献1891条经验 获得超3个赞
或者尝试使用BC数学函数:
<?php
$a = 0.17;
$b = 1 - 0.83; //0.17
echo "$a == $b (core comp oper): ", var_dump($a==$b);
echo "$a == $b (with bc func) : ", var_dump( bccomp($a, $b, 3)==0 );
结果:
0.17 == 0.17 (core comp oper): bool(false)
0.17 == 0.17 (with bc func) : bool(true)
- 3 回答
- 0 关注
- 464 浏览
添加回答
举报
0/150
提交
取消