我在使用php数组进行数学运算时遇到问题

我在使用php数组进行数学运算时遇到问题,php,math,floating-point-precision,Php,Math,Floating Point Precision,我用两个这样的数组进行数学计算 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) } $d_positif array(3) { [0

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

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) }
$d_positif

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

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]);
    }
但是像这样的数学运算的输出

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) }

有人能帮我解释为什么会这样吗?

您期望的输出实际上是

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


我将您的第一次计算结果(2.7742631687417/(2.7742631687417+2.7259998526469))输入windows计算器,我得到的结果与您得到的结果完全一致(050438736437758711142967896416502),但不是预期的结果。告诉我你的预期结果可能有误。你为什么期待你的结果?这是以前的计算结果吗?这个星球上的每个PHP版本都计算您得到的结果,而不是您期望的结果: