PHP中相同数量的不同格式

时间:2010-12-07 19:03:16

标签: php

我在PHP中有两个数字。 81.0000和81.虽然它们在现实中是平等的但我不能在PHP中使它们相等。

我已经尝试将这两个数字投射到浮动状态,但它们仍然不会被认为是平等的。

任何人都知道我怎么能让这两个数字相同?

2 个答案:

答案 0 :(得分:5)

在php.net上查看真棒WARNING

  

永远不会将浮点数结果信任到最后一位,并且永远不会将浮点数与相等性进行比较。

最好的方法是输入(int),或使用PHP舍入函数,如round()floor()ceil()

<强>更新
查看Arbitrary Precision Math Functions,例如@Jose Vega在答案中指出的那个。他们应该把你带到你需要去的地方。

答案 1 :(得分:3)

bccomp - 比较两个任意精度数

bccomp ( string $left_operand , string $right_operand [, int $scale ] )

<?php

echo bccomp('1', '2') . "\n";   // -1
echo bccomp('1.00001', '1', 3); // 0
echo bccomp('1.00001', '1', 5); // 1

?>