我有一个客户端希望将此计算转换为PHP中的函数。我给了测试数字并给出了答案,我从这个答案中得到了太多的答案,因为它是正确的我不确定计算是错误还是我没有看到问题。
function Density($m1 , $m2, $m3, $pw, $psm){
return $m1 / (($m2 - $m3) / $pw) - (($m2 - $m1) / $psm) ;
}
$Density = ( Density(746.2, 761.7, 394.6, (998.1*1000), (761.7-746.2)) / 1000000)
output : 2.02882553228
answer : 2.127
我也尝试过这样的事情,但这对于它来说是正确的
function Density($m1 , $m2, $m3, $pw, $psm){
return $m1 / ((($m2 - $m3) / $pw) - (($m2 - $m1) / $psm ));
}
output : -0.001
answer : 2.127
我知道它应该接近答案,因为它可以从正确的答案得到0.010但我不知道我做错了请帮助互联网。
答案 0 :(得分:3)
记住BEDMAS - 括号指数除法加法减法。您的代码对于操作顺序是错误的:
m1 / (((m2 - m3) / pw) - ((m2 - m1) / psm))
或者,如果该等式已正确排版:
m1
--------------------
m2 - m3 m2 - m1
------- - -------
pw psm
答案 1 :(得分:0)
您的实施与要求不同。
您应该确保严格遵守运营商优先级规则:
return $m1 / ((($m2 - $m3) / $pw) - (($m2 - $m1) / $psm)) ;