2010-02-24 89 views
16

我正在嘗試使用javascript將string更改爲int試圖更改字符串 - > int

var intVal = gSpread1.Text * 1; 

我想intVal的類型是int

我可以得到一個int值,如果gSpread1.Text小於1000

但如果gSpread1.Text大於1000,intVal回報NaN

什麼是使用ParseInt,以確保它始終以正確的方式返回一個int值?

+0

它應該工作,你必須調試和檢查所產生'NaN'值... – CMS 2010-02-24 00:56:19

+0

謝謝你,現在我明白了原因。 gSpread1.Text用逗號返回(,) 如果gSpread1.Text爲1,234轉換成int是不工作... 我真的很感謝你們大家 – 2010-02-24 00:58:49

回答

37

你嘗試intVal = parseInt(gSpread1.Text, 10);

10個被稱爲基數,並註明數字系統中使用。

更新:使用+符號還有一個有用的快捷方式。
例如:+gSpread1.Text會將字符串轉換爲數字。並將根據字符串值返回integerfloat

+0

很好的回答 - 謹防parseInt函數沒有基數,因爲「09」是不是數字(八進制中沒有9,這是0前綴代表的內容) – Nicole 2010-02-24 01:00:47

+0

+1爲快捷鍵:) – Binod 2013-06-13 07:08:27

0

下面的代碼對我的作品:

var intVal = parseInt("100000"); 
alert(intVal); 

也許發表您的非工作代碼?這個問題可能在別處。

2

沒有在JavaScript中沒有的int類型。只有數字。如果你有一個非十進制數,parseInt沒問題,或者你可能會在字符串後面加上「5asdkfkasdk」。但對於常見的情況,當你知道你的字符串只有十進制數字時,我更喜歡使用Number()構造函數。它看起來更優雅,對於執行大量強制轉換的C和Python程序員來說更爲熟悉。

var numericValue = Number("100000"); 
var numericValue2 = parseInt("100000", 10); 

這些產生相同類型的相同結果。

0

如果您確信您的字符串包含INT你可以只使用一個+

var n = "455"; 
n = +n; // now n is integer