Powershell 算术运算符的问题

Powershell 算术运算符的问题,powershell,powershell-3.0,powershell-4.0,Powershell,Powershell 3.0,Powershell 4.0,我的问题是,我正试图在PowerShell脚本中加入一个简单的数学公式,但这个算术运算符现在对我来说是个问题,它曾经是这样工作的,但现在有些变化了,我在其中加入了什么并不重要,它会将更多的数字乘以,就像它们是字母一样,只是将所有的数字叠加在一起 我甚至试着用电脑修理它 $x=[int]$xx 修正我的变量,以便PowerShell能够理解,并且它不适用于断开的数字,例如:7.5或3.1或9.6无断开的数字。有人能帮我吗 $pi=[math]::pi $xx= Read-Host -prompt

我的问题是,我正试图在PowerShell脚本中加入一个简单的数学公式,但这个算术运算符现在对我来说是个问题,它曾经是这样工作的,但现在有些变化了,我在其中加入了什么并不重要,它会将更多的数字乘以,就像它们是字母一样,只是将所有的数字叠加在一起

我甚至试着用电脑修理它

$x=[int]$xx

修正我的变量,以便PowerShell能够理解,并且它不适用于断开的数字,例如:7.5或3.1或9.6无断开的数字。有人能帮我吗

$pi=[math]::pi
$xx= Read-Host -prompt "X "
$yy= Read-Host -prompt "Y "
$zz= Read-Host -prompt "Z "
$x=[int]$xx
$y=[int]$yy
$z=[int]$zz
$re = $z * $y
$r = $z * $x + $y * $x + $z * $x + $y * $x
$res = 2 * ($re) + $r
echo .
echo "$r = $z * $x + $y * $x + $z * $x + $y * $x"
echo .
echo "$re = $z * $y"
echo .
echo "$res = 2 * ($re) + $r"
echo .
echo "Total = $res"
echo .
pause

如果你运行这个程序,把X设为27,Y设为7.5,Z设为17,你的答案应该是1578,你把它修好了,你得到了错误的答案,因为7.5不是[int]。将其转换为整数需要从7.5到8四舍五入。您需要$y=[single]$yy才能完成此操作或任何其他支持小数的类型。如果需要十进制值,我会将所有[int]替换为[single]。见下文:

$pi=[math]::pi
$xx= Read-Host -prompt "X "
$yy= Read-Host -prompt "Y "
$zz= Read-Host -prompt "Z "
$x=[single]$xx
$y=[single]$yy
$z=[single]$zz
$re = $z * $y
$r = $z * $x + $y * $x + $z * $x + $y * $x
$res = 2 * ($re) + $r
echo "$r = $z * $x + $y * $x + $z * $x + $y * $x"
echo "$re = $z * $y"
echo "$res = 2 * ($re) + $r"
echo "Total = $res"
上述变量的输出:


您可能使用的其他类型有[double],这是带小数的未定式数字的默认类型,以及[decimal]。您还可以使用-as类型运算符,如$y=$yy-as[double]。请参见

您得到了错误的答案,因为7.5不是[int]。将其转换为整数需要从7.5到8四舍五入。您需要$y=[single]$yy才能完成此操作或任何其他支持小数的类型。如果需要十进制值,我会将所有[int]替换为[single]。见下文:

$pi=[math]::pi
$xx= Read-Host -prompt "X "
$yy= Read-Host -prompt "Y "
$zz= Read-Host -prompt "Z "
$x=[single]$xx
$y=[single]$yy
$z=[single]$zz
$re = $z * $y
$r = $z * $x + $y * $x + $z * $x + $y * $x
$res = 2 * ($re) + $r
echo "$r = $z * $x + $y * $x + $z * $x + $y * $x"
echo "$re = $z * $y"
echo "$res = 2 * ($re) + $r"
echo "Total = $res"
上述变量的输出:


您可能使用的其他类型有[double],这是带小数的未定式数字的默认类型,以及[decimal]。您还可以使用-as类型运算符,如$y=$yy-as[double]。请参见

您得到了错误的答案,因为7.5不是[int]。将其转换为整数需要从7.5到8四舍五入。您需要$y=[single]$yy才能完成此操作或任何其他支持小数的类型。如果需要十进制值,我会将所有[int]替换为[single]。@这将是一个很好的答案!你得到了错误的答案,因为7.5不是[int]。将其转换为整数需要从7.5到8四舍五入。您需要$y=[single]$yy才能完成此操作或任何其他支持小数的类型。如果需要十进制值,我会将所有[int]替换为[single]。@这将是一个很好的答案!