我有一个客户,他想把这个计算变成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的正确答案,但我看不出我做错了什么,请帮助互联网。
发布于 2014-08-06 22:51:18
记住BEDMAS -括号指数除法、乘法、加法、减法。您的代码对于操作顺序是错误的:
m1 / (((m2 - m3) / pw) - ((m2 - m1) / psm))或者,如果这个方程式排版正确:
m1
--------------------
m2 - m3 m2 - m1
------- - -------
pw psm发布于 2014-08-06 22:53:37
您的实现与所需的不同。
您应该确保正确遵守运算符优先规则:
return $m1 / ((($m2 - $m3) / $pw) - (($m2 - $m1) / $psm)) ;https://stackoverflow.com/questions/25163482
复制相似问题