Powershell读取主机无法正确添加或相乘?

我在这里到底在做什么错,它似乎在减去就好了,但是加法和乘法似乎根本不起作用。

如何获取它以正确进行计算,并允许if语句也可以正常运行,即使数字大小不正确也是如此。

$a = Read-Host "What is your name?"
$b = Read-Host "Enter a 2 digit number" 
$c = Read-Host "Enter a 3 digit number" 




if (($b -ge 10) -and ($b -le 99) -and ($c -ge 100) -and ($c -le 999)){


$d = $b + $c
$e = $b * $c
$g = $b - $c

$d
$e
$g


Write-host "Here you go $a"

}
else {

write-host "Enter the numbers correctly"

}

Here the results I get

WLKing 回答:Powershell读取主机无法正确添加或相乘?

Read-Host始终输出字符串

要将输出视为数字,您必须明确将其转换为一个

RecyclerView

上面的 type-constrains 变量$a = Read-Host "What is your name?" [int] $b = Read-Host "Enter a 2 digit number" [int] $c = Read-Host "Enter a 3 digit number" $b为整数值(通过将$c强制转换为 left 变量中的目标变量),它会自动将[int]的{​​{1}}输出转换为Read-Host


关于您尝试过的事情

除了[string]之外,代码中使用的所有运算符都有特定于字符串的重载(含义);请注意, LHS 类型为[int]足以触发此行为。 [1]

  • - / [string]对字符串执行 lexical 比较;例如-lt会产生-ge,因为在词法排序中,字符串'10' -gt '2'在字符串$false之前。

  • '10' / '2' empty 字符串视为-and,将任何非空字符串视为{{1} };例如,
    -or$false,因为$true是非空字符串。

  • '0' -and '0'执行字符串串联;例如$true'0'

  • +执行字符串复制;例如,'1' + '0''10'-LHS重复了RHS上的数字所指定的次数;请注意,*的工作原理相同,因为在这种情况下RHS被强制为'1' * 3

  • '111'是唯一的例外:如果可能的话,它总是执行数字运算。例如,'1' * '3'会产生[int],因为两个操作数都隐式转换为-


[1]通常,操作的LHS决定其数据类型,并在必要时将RHS强制为匹配类型。

本文链接:https://www.f2er.com/3156954.html

大家都在问