我很困惑以下,希望我即將學習的東西。 當我運行下面的代碼:「1」如何超過50?
<%
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"
%>
它寫到:
ss = "1"
ii = 50
ss >= ii True?
"1" >= 50 False
MSDN says 如果操作數是一個數字和一個字符串比較是字符串被轉換爲一個雙並且進行數值比較。如果字符串無法轉換爲Double,則會引發InvalidCastException。
我使用的ASP版本5.8,版本號18525.
我並不需要一個解決方法,因爲我有一個,但我不知道是否有因爲它是一個容易犯的錯誤有原因的。
編輯:選擇正確的答案有一個評論與進一步的鏈接到詳細的2個比較之間的差異。
實際上'版本5.8'可能是指VBScript版本。 – Lankymart
[VBScript中整數和字符串比較衝突]的可能重複(http://stackoverflow.com/questions/40465831/integer-and-string-comparison-conflict-in-vbscript) – Lankymart
使用'if CLng(x)> CLng (y)然後' – Zam