2010-07-08 26 views
3

我有以下代碼:什麼是int(x)真的在做什麼?

<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 

發生了什麼事,當我在傳遞這些列表?

回答

5

INT()如果您傳遞的不是數字,行爲是不確定的。

您可以使用isNumeric()函數檢查字符串是否爲數字。

如果您需要從任意字符串中提取數字,請使用parseInt()

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> 

順便說一句,Railo使得這種聰明:它拋出時串不能可靠轉換的exeption(迭代3和4)。

+0

我其實並沒有期待任何特別的結果,我只是偶然發生了這種行爲,並試圖確定輸出是如何產生的。 – Anthony 2010-07-08 20:57:59

+0

猜想這是從傳統的CF版本繼承的一些奇怪的實現... – Henry 2010-07-08 20:59:42

相關問題