使用array_sum进行计算时出现奇怪的结果

时间:2017-11-22 16:51:04

标签: php php-7

我在PHP中进行简单的计算时遇到了一些奇怪的行为。请考虑以下代码:

$numbers = [29, -6.01];

$a = 22.99;
$b = array_sum($numbers);
$c = (float) array_sum($numbers);
$d = 22.99;

var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
var_dump($a - $b);
var_dump($a - $c);
var_dump($a - $d);

var_dump语句的预期输出应为:

float(22.99)
float(22.99)
float(22.99)
float(22.99)
float(0)
float(0)
float(0)

而是输出:

float(22.99)
float(22.99)
float(22.99)
float(22.99)
float(-3.5527136788005E-15)
float(-3.5527136788005E-15)
float(0)

因此,当执行实际减法时,array_sum函数调用的结果(在转储时显示正确的值)会有所不同。

我已在 PHP 7.0.25 上尝试过此操作。我无法找到任何错误报告或描述此行为的任何其他资源。在提交错误报告之前,我确定我不会遗漏任何内容。

0 个答案:

没有答案