Coldfusion为什么评估这些数字不相等?

时间:2013-01-30 14:41:34

标签: coldfusion coldfusion-8

为什么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#">

测试输出为false。

1 个答案:

答案 0 :(得分: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">

这导致预期答案为真。