4

なぜ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として出力されます。

4

1 に答える 1

15

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">

これにより、期待される真の答えが得られます。

于 2013-01-30T15:19:14.817 に答える