OMG用这个非常基本的代码找不到我的问题

问题描述 投票:0回答:3

为了上帝的爱,有人可以帮我弄清楚为什么这个最基本的代码无法在PHP中运行吗?已经使用PHP多年了,但从未见过...在我使用sandbox.onlinephpfunctions.com网站进行测试时,在每个版本的php上都是一致的,请参见代码段下面的链接。

<?php

$lside = 490.84;
$rside = 237.80 + 222.00 + 31.04;

if( $lside == $rside ){
   echo "they are equal\n";
} else {
   echo "not equal\n";
   echo "rside: [$rside]\n";
   echo "lside: [$lside]\n";
}

http://sandbox.onlinephpfunctions.com/code/6dee3a97f68a11e67fbaa8e5c157b827ecd47740

帮助和感谢!

php math basic
3个回答
0
投票

您可以尝试这个:

if( bccomp($lside, $rside, 2) == 0 ){
   echo "they are equal\n";
} else {
   echo "not equal\n";
   echo "rside: [$rside]\n";
   echo "lside: [$lside]\n";
}

因为比较浮点数时比较复杂,所以您可以阅读更多here,而对于bccomp功能则可以阅读更多here


0
投票

尝试一下

$lside = 490.84;
$rside = 237.80 + 31.04 + 222;
$newRside = number_format($rside,2);

if( $lside == $newRside ){
   echo "they are equal\n";
} else {
   echo "not equal\n";
   echo "rside: [$rside]\n";
   echo "lside: [$lside]\n";
}

© www.soinside.com 2019 - 2024. All rights reserved.