所以我注意到ColdFusion为条件true
返回'00' == '.0'
这在CF 9.1和CF 10中是可再现的
我可以通过添加find('.', foo)
条件轻松解决这个问题,但这不正常。
这样的事情让我怀疑ColdFusion。它让我想知道为什么它会在这个明显错误的条件下返回true,以及它认为其他什么值相等?
您是否有可以在Coldfusion中进行比较的值列表?或者更好的是,是否有一个可靠的解决方案来防止这种不匹配?
答案 0 :(得分:0)
正如haxtb所指出的,这里有关于此问题的更多信息:Evaluation and type conversion issues。这是一个类型转换问题,ColdFusion尝试将短字符串值解释为datetime,boolean或numeric值而不是字符串。一些例子:
'1a' //datetime: 1:00am
'1p' //datetime: 1:00pm
'0.25' //datetime: a quarter of a day or 6:00am
'.0' //boolean: false
'.0' //numeric: 0
正如John Wish所说,如果你只是想进行字符串比较,你应该总是使用Compare或CompareNoCase()函数。