2010-12-07 59 views
0

我在PHP中有两个数字。 81.0000和81.虽然他们在现实中是平等的,但我无法让他们在PHP中平等。在PHP中有相同数字的不同格式

我试图铸造两个数字飘起,他们仍然不会来思想为相等。

任何人有任何想法,我怎么能有这两个数字是一样的吗?

+1

您可以包括一些示例代码? `php> echo 81.0000 == 81;`对我来说是真的 – baloo 2010-12-07 19:06:02

+0

你用`===`来检查吗? – RSK 2010-12-07 19:10:27

回答

5

检查出php.net的真棒WARNING

永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。

最好的你可以是类型转换为(int),或使用PHP四舍五入功能,如round()floor(),或者ceil()

UPDATE
检查出这样Arbitrary Precision Math Functions一个@Jose维加在他的回答中指出。他们应该把你带到你需要去的地方。

+0

+1非常非常真实。 :-) – 2010-12-07 19:14:05

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 

?> 
相关问题