int()的意外行为

时间:2017-01-31 15:47:24

标签: coldfusion int rounding coldfusion-10

我对在ColdFusion 10(10,0,20,282462)中关注int() - 函数的行为感到有点困惑:

<cfset dummy = 100 - (5859 / (6510 / 100)) />
<cfoutput>
    dummy = #dummy#<br><br> <!--- 10 --->
    int(10) = #int(10)#<br> <!--- 10 --->
    int(dummy) = #int(dummy)# <!--- 9 --->
</cfoutput>

有人可以解释为什么int(dummy)会返回9而不是10吗?

1 个答案:

答案 0 :(得分:0)

int(dummy)返回9而不是10,因为它在其他语言中基本上是floor(),您的答案可能会变为9,因为默认情况下, ,它们被视为double

您是否听说过PrecisionEvaluate() https://cfdocs.org/precisionevaluate

dummy = PrecisionEvaluate(100 - (5859 / (6510 / 100)));
writeOutput(dummy);

您将按预期获得10