以下代码打印大于1 :
$value = "1.9964672441318374e-005"
If ($value -ge 1)
{
Write-Host "It's greater than 1"
}
Else
{
Write-Host "Smaller than 1"
}
我知道这可以通过将$ value转换为[double]来纠正。我想知道是否有其他人遇到过这种不一致的行为。我说不一致,因为对于十进制格式的字符串,比较产生正确的输出。有什么想法吗?
答案 0 :(得分:2)
引号使变量被视为字符串:
PS> $v=1.1e3
PS> $v |get-member #-> TypeName : System.Double
PS> $v="1.1e3"
PS> $v |get-member #-> TypeName : System.String
如果您删除原始代码中的引号,您会发现该比较的效果与您期望的一样。