4

为什么 Coldfusion 8 将 47.0000 * 15.40 eq 723.8 评估为假?

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

测试输出为假。

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 回答