Charada no CFMX: “55D” é igual a “55”?

O código abaixo pode parecer um tanto quanto estranho, mas ele vai dar como outuput “Iguais!”. Não acredita? Teste você mesmo:

<cfset var1=”55″>
<cfset var2=”55D”>
<cfif var1 EQ var2>
Iguais!
<cfelse>
Diferentes!
</cfif>

A resposta NÃO é simples: “D” em Java equivale a “decimal”, 55 e 55D são números, por assim dizer, decimais. Portanto serão iguais para o CFMX. Faça seus testes! Coisa maluca não? A pergunta fica a seguinte: as variáveis CFMX continuam sendo “typeless” depois que o CFMX compila o código e ele vira Java?

Anyway, para poder chegar ao resultado que você deseja basta usar:

<cfif Compare(var1,var2) neq 0>not equal</cfif>