什么是int(x)真的在做什么?

时间:2010-07-08 20:04:16

标签: coldfusion

我有以下代码:

<cfloop list="1|1.2|1,2|1,2,3" delimiters="|" index="x">
    #X# - #int(x)# <br />
</cfloop>

产生此输出:

1 - 1
1.2 - 1
1,2 - 40180
1,2,3 - 37623 

当我通过这些名单时会发生什么?

2 个答案:

答案 0 :(得分:5)

INT()如果您传递的内容不是数字,则行为未定义。

您可以使用isNumeric()函数检查字符串是否为数字。

如果您需要从任意字符串中提取数字,请使用parseInt()

答案 1 :(得分:3)

你最好解释一下预期的结果。也许您需要int(val(x))作为解决方法。

考虑这个循环示例,看看你可以使用的函数之间的区别:

<cfloop list="1|1.2|1,2|1,2,3" delimiters="|" index="x">
    #x# - #val(x)# - #int(val(x))# - #fix(val(x))# - #isNumeric(x)# - #isValid("integer", x)#<br />
</cfloop>
BTW,Railo使这更聪明:当字符串无法可靠转换时(迭代3和4),它会抛出一个例外。