2010-02-24 61 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