【发布时间】:2024-08-09 21:05:02
【问题描述】:
我对 ColdFusion 10 (10,0,20,282462) 中 int()-function 的以下行为感到有些困惑:
<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?
【问题讨论】:
-
dummy 实际上是一个浮点数。它只是显示为整数。以数字格式输出以查看实际值。
-
要确认它是浮动的,*.com/questions/11208155/…
-
也许轮到然后使用Javacast?这将返回 10。
-
与大多数数字一样,CF 将除法的结果存储为近似类型:java.lang.Double 和decimal numbers that "look" round in base 10, are not exactly representable in base 2。在这种情况下,the real value is ~ 9.999999999999986,向下取整等于 9,而不是 10。
标签: coldfusion int rounding coldfusion-10