我的问题是我试图在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,然后将其固定
答案 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