算术运算符的问题

时间:2019-04-11 14:47:07

标签: powershell powershell-v3.0 powershell-v4.0

我的问题是我试图在PowerShell脚本中放入一个简单的数学公式,但是这个“算术运算符”现在对我来说是个问题,它曾经以这种方式工作,但是有所改变,现在却没有。不管我把更多的数字乘以倍数,就好像它们是字母一样,(只是将它们全部堆叠在一起)

我什至尝试使用

对其进行修复

$x=[int]$xx

修复我的变量,以便PowerShell可以理解,并且确实可以使用破折号Ex: 7.5 or 3.1 or 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,然后将其固定

1 个答案:

答案 0 :(得分:4)

您得到的答案是错误的,因为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"

以上变量的输出:

$x,$y,$z,$re,$r,$res
27
7.5
17
127.5
1323
1578

您可能会使用的其他类型是[double][decimal]-as是带小数的非强制转换数字的默认类型。您还可以使用$y = $yy -as [double]之类的const stored = localStorage[location.href] const number = stored || Math.floor(Math.random() * 6) + 2 document.getElementById("n1").innerHTML = number if ( !stored ) localStorage[location.href] = number类型运算符。参见About Type Operators