Registered: 2000-01-24
Posts: 4946
Loc: Leatherhead, Surrey, UK
It's not a bug, it is expected behaviour.
Expressions are coerced to the same type as the value on the LHS of the comparison operator. You are coercing a string type to a numeric type, and the *numeric* value of the string "a" is zero so the expression is true.
It is no more incorrect than the following which is also true.
Code:
If 123 = "12" + "3 Green Bottles"
"They match!"+@CRLF
EndIf
The correct coding for what you are expecting would be:
Code:
If CStr(0) = "a"
"Can't possibly be true"+@CRLF
EndIf