我使用数组php遇到有关数学运算的问题

时间:2015-05-22 19:08:07

标签: php math floating-point-precision

我使用像这样的两个数组进行数学计算

$ d_positif

array(3) { [0]=> float(2.7742631687417) [1]=> float(2.5949809043991) [2]=> float(3.0174025996932) } 

$ d_negatif

array(3) { [0]=> float(2.7259998526469) [1]=> float(3.4826656582587) [2]=> float(3.2284968891602) } 

我有公式

$count = count($d_positif);

    for ($i = 0; $i < $count; $i++) {
        $v[$i] = $d_positif[$i] / ($d_negatif[$i] + $d_positif[$i]);
    }

V1 = 2.7742631687417 /(2.7742631687417 + 2.7259998526469)

V2 = 2.5949809043991 /(2.5949809043991 + 3.4826656582587)

V3 = 3.0174025996932 /(3.0174025996932 + 3.2284968891602)

我应该得到这样的结果

array(3) { [0]=> float(0,495612636) [1]=> float(0,573028659) [2]=> float(0,51689863) }

但是像这样的数学运算的输出

array(3) { [0]=> float(0.50438736437759) [1]=> float(0.42697134123315) [2]=> float(0.48310136995931) }

任何人都可以帮助我为什么会这样?

1 个答案:

答案 0 :(得分:3)

您期望的输出实际上是

的结果
$v[$i] = $d_negatif[$i] / ($d_negatif[$i] + $d_positif[$i]);

$v[$i] = $d_positif[$i] / ($d_negatif[$i] + $d_positif[$i]);