なぜcoldfusion8は47.0000*15.40 eq 723.8をfalseと評価するのですか?
<cfset test = false />
<cfset a = 47.0000 />
<cfset b = 15.40 />
<cfset c = 723.8 />
<cfif (a * b) eq c>
<cfset test = true />
</cfif>
<cfdump "#test#">
テストはfalseとして出力されます。
なぜcoldfusion8は47.0000*15.40 eq 723.8をfalseと評価するのですか?
<cfset test = false />
<cfset a = 47.0000 />
<cfset b = 15.40 />
<cfset c = 723.8 />
<cfif (a * b) eq c>
<cfset test = true />
</cfif>
<cfdump "#test#">
テストはfalseとして出力されます。
PrecisionEvaluate()を使用して、CFにBigDecimalsを使用して計算を実行させることができます。
<cfset test = false />
<cfset a = 47.0000 />
<cfset b = 15.40 />
<cfset c = 723.8 />
<cfif PrecisionEvaluate(a * b) eq c>
<cfset test = true />
</cfif>
<cfdump var="#test#" abort="true">
これにより、期待される真の答えが得られます。