Php 计算输出中存在错误值
以下代码输出“3”。我在等“1”Php 计算输出中存在错误值,php,math,Php,Math,以下代码输出“3”。我在等“1” 为什么会这样?不,你错了。/具有优先权,因此您的线路如下: $valor = $resultado * ($resultado - (1 / 2)); 也就是说: $valor = 2 * (2 - 0.5); // and so $valor = 3 不,你错了。/具有优先权,因此您的线路如下: $valor = $resultado * ($resultado - (1 / 2)); 也就是说: $valor = 2 * (2 - 0.5); // a
为什么会这样?不,你错了。/具有优先权,因此您的线路如下:
$valor = $resultado * ($resultado - (1 / 2));
也就是说:
$valor = 2 * (2 - 0.5); // and so $valor = 3
不,你错了。/具有优先权,因此您的线路如下:
$valor = $resultado * ($resultado - (1 / 2));
也就是说:
$valor = 2 * (2 - 0.5); // and so $valor = 3
将表达式中的
$resultado
替换为:
$valor = 2 * (2 - 1 / 2);
2 - 1 / 2 = 1.5
2 * 1.5 = 3
我的建议是复习基础数学;) 替换表达式中的
$resultado
,可以得到:
$valor = 2 * (2 - 1 / 2);
2 - 1 / 2 = 1.5
2 * 1.5 = 3
我的建议是复习基础数学;) 这是因为除法运算符(
/
)的优先级高于减法运算符(-
)
您的表达式依次变为:
1 / 2 = 0.5 // Executed first since it's the highest precedence operation inside ()
$resultado - 0.5 = 1.5 // Still in the ()
$resultado * 1.5 = 3 // Final result
要更正表达式,请在减法的周围插入parethesis,如下所示:
$resultado * (($resultado - 1) / 2);
这是因为除法运算符(
/
)的优先级高于减法运算符(-
)
您的表达式依次变为:
1 / 2 = 0.5 // Executed first since it's the highest precedence operation inside ()
$resultado - 0.5 = 1.5 // Still in the ()
$resultado * 1.5 = 3 // Final result
要更正表达式,请在减法的周围插入parethesis,如下所示:
$resultado * (($resultado - 1) / 2);
因为除法
1/2
在运算顺序中优先。所以你真的有这个表达:
$resultado * ($resaltudo - (1 / 2))
应将括号添加为:
$resultado * (($resaltudo - 1) / 2)
获取您想要的答案。因为除法
1/2
在运算顺序中优先。所以你真的有这个表达:
$resultado * ($resaltudo - (1 / 2))
应将括号添加为:
$resultado * (($resaltudo - 1) / 2)
获取您想要的答案。将其更改为:
echo $resultado."\n";
$valor = $resultado * (($resultado - 1) / 2);
echo $valor."\n";
您实际上是在执行2*(2-(1/2)
=2*1.5
=3
将其更改为:
echo $resultado."\n";
$valor = $resultado * (($resultado - 1) / 2);
echo $valor."\n";
你实际上是在做
2*(2-(1/2)
=2*1.5
=3
优先于+或-
要得到1,您需要使用
$resultado * (($resultado - 1) / 2)
/优先于+或- 要得到1,您需要使用
$resultado * (($resultado - 1) / 2)
2*(2-1/2)
除法运算符的优先级高于减号,因此计算机将按如下方式计算:
2*(2-(1/2))=2*1.5=3
随意使用括号。2*(2-1/2)
除法运算符的优先级高于减号,因此计算机将按如下方式计算:
2*(2-(1/2))=2*1.5=3
大量使用括号