Php 计算输出中存在错误值

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

以下代码输出“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); // 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

大量使用括号