我对以下内容感到困惑,希望我能学到一些东西.当我运行以下代码时:
<%
Response.Write "ss = ""1""<br/>"
ss = "1"
Response.Write "ii = 50<br/>"
ii = 50
Response.Write "ss >= ii "
If ss >= ii Then Response.Write "True?" Else Response.Write "False"
Response.Write "<br/>""1"" >= 50 "
If "1" >= 50 Then Response.Write "True" Else Response.Write "False"
%>
Run Code Online (Sandbox Code Playgroud)
它写道:
ss = "1"
ii = 50
ss >= ii True?
"1" >= 50 False
Run Code Online (Sandbox Code Playgroud)
MSDN说 如果操作数是一个数字和一个字符串比较是字符串被转换为双精度并执行数字比较.如果无法将String转换为Double,则抛出InvalidCastException.
我正在使用ASP版本5.8,内部版本号18525.
我不需要一个解决方法,因为我有一个,但我想知道是否有一个原因,因为它是一个容易犯的错误.
编辑:选择正确的答案有一个注释,其中包含2个比较之间差异细节的进一步链接.