在PHP中计算数字时的奇怪行为

时间:2014-04-22 10:00:43

标签: php math

当我运行以下PHP脚本时,它只是从11.5计算30%的折扣。我会得到一些奇怪的结果。通常我会在测试计算结果时期望条件为假。但我得到了真相。

在这种情况下,php有什么问题?

<?php
$_discount = 30;
$_price = 11.5;
$_qty = 1;

echo $_result = ((1-$_discount / 100) * $_price); // the result is 8.05 
echo $_result; // prints 8.05;
echo gettype($_result); // prints double

echo $_result !== 8.05; // returns 1 instead of 0
?>

1 个答案:

答案 0 :(得分:2)

尝试使用this

<?php
$_discount = 30;
$_price = 11.5;
$_qty = 1;

echo $_result = ((1-$_discount / 100) * $_price); // the result is 8.05 
echo $_result; // prints 8.05;
echo gettype($_result); // prints double

echo (double)$_result !== 8.05;
?>