比较问题字符串vs int

时间:2010-05-26 17:15:34

标签: powershell-v2.0

有人可以向我解释为什么这些比较会按照他们的方式进行。我的一个脚本中有一个错误让我花了一些时间来完成。我正在使用read-host并输入一个数字。它将它存储为字符串。

Write-Host "(`'2`' -gt 9 ) = " ('2' -gt 9 )
Write-Host "(2 -gt 9 ) = " (2 -gt 9 )
Write-Host "(`'2`' -gt 10 ) = " ('2' -gt 10 )

如果要将字符串与Int进行比较,它是否使用Ascii值?如果是这样,为什么第一个显示$ false,它应该是$ true。

那么当你将int更改为10时它是如何变为$ true。

1 个答案:

答案 0 :(得分:0)

在比较时,将右值转换为左值的类型。因此,'2' -gt 9变为'2' -gt '9',即为假,'2' -gt 10变为'2' -gt '10',即为真。