`

JS类型转換parseInt应注意的问题

阅读更多

http://www.blogjava.net/smcdl/archive/2008/11/14/240447.html

http://hanxin830311.iteye.com/blog/181125

http://www.fzs8.net/Java/JavaScript/2007-05-25/3983.html

javascript的parseInt函数,大家都知道是干啥的
但你知道
parseInt("07") 返回多少 ?
parseInt("08") 又返回多少 ?

正确答案是
parseInt("07") 返回7
parseInt("08") 返回0

你知道问题在哪?
其实,这个问题可能大家都没想过吧。

用javascript的parseInt函数时,
parseInt("08")或者parseInt("09")返回的居然是0,
而parseInt("01")...parseInt("07")都是正确的。

为什么这样呢?
一开始很难理解,后来发现出现这个问题的原因是当在前面有"0"时,
javascript的debugger会认为这是一个八进制数,
而"08"和"09"不是一个合法的八进制数,
所以导致了那个问题,但是parseFloat不会存在这个问题。

javascript参考中parseInt()函数是如此描述:

parseInt 方法
返回由字符串转换得到的整数。将字符串转换成整型。

parseInt(numString, [radix])

parseInt的参数radix

可选项。在 2 和 36 之间的表示 numString 所保存数字的进制的值。如果没有提供,则前缀为 '0x' 的字符串被当作十六进制,前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的。

因此,如果使用parseInt("08",10)或者parseInt("09",10),
通知javascript解释器使用十进制来解析就可以得到你要的数字。

附:
parseInt("abc") // 返回 NaN。
parseInt("12abc") // 返回 12。

分享到:
评论

相关推荐

    js数据类型转换

    常用的js数据类型转换函数parseInt

    javascript parseInt() 函数的进制转换注意细节.docx

    javascript parseInt() 函数的进制转换注意细节.docx

    js parsefloat parseint 转换函数

    js parsefloat parseint JavaScript提供了3个显式的类型转换函数,分别是eval()、parseInt()和parseFloat()。 eval()函数:将字符串表达式转换成数字值。例如,语句total=eval(“432.1*10”&#41...

    Javascript的数据类型转换

    parseInt()-将字符串转化为整型 parseFloat()-将字符串转化为浮点数 ...String()-函数能够将任何类型的值转换为字符串 tostring()-将数字转换为进制 Boolean()-转换为Boolean值 toFixed-()将数值转换为字符串

    javascript 数据类型转换(parseInt,parseFloat)

    javascript有两种数据类型的转换方法: (一)将整个值从一种类型转换为另一种数据类型(称作基本数据类型转换) (二)从一个值中提取另一种类型的值,并完成转换工作 基本数据类型转换的三种方法: 1.转换为字符...

    【JavaScript源代码】JavaScript parseInt()与Number()区别案例详解.docx

     学习目标: parseInt()、Number()这两个函数用到最多的地方就是把一个字符串转换成数据类型,那么他们都有哪些区别? 学习内容: parseInt()函数将给定的字符串以指定的基数解析为整数。 parseInt(string,...

    Javascript 函数parseInt()转换时出现bug问题

    parseInt(1.13*100),实际返回值是112。直接看代码吧 代码如下: <head> [removed] function test(){ var thisvalue = 0; thisvalue=yuanToFen($(“#inp”).val()); alert(thisvalue); } /*元转分*/ ...

    20200424 基于JavaScript Number类型 Number() 、 parseInt() 和 parseFloat() 的转换规则.zip

    基于JavaScript Number类型 Number() 、 parseInt() 和 parseFloat() 的转换规则的思维导图

    详解JS转换数值函数Number()、parseInt()、parseFloat()

    JS中有三种函数可以将非数值转换成数值:Number()、parseInt()和parseFloat()。接下来通过本文详细的给大家介绍JS转换数值函数Number()、parseInt()、parseFloat()的实例代码,感兴趣的朋友一起看看吧

    js数值计算时使用parseInt进行数据类型转换(jquery)

    主要介绍了js数值计算时使用parseInt进行数据类型转换(jquery),需要的朋友可以参考下

    javascript parseInt() 函数的进制转换注意细节

    parseInt(string, radix) 有2个参数,第一个string 是传入的数值,第二个radix是 传入数值的进制,参数radix 可以忽略,默认为 10,各种进制的数转换为 十进制整数,接下来详细介绍,感兴趣的朋友可以了解下哦

    parseInt parseFloat js字符串转换数字

    方法主要有三种 转换函数、强制类型转换、利用js变量弱类型转换。 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数。前者把值转换成整数,后者把值转换成浮点数。只有对String类型调用这些方法,这两个...

    JavaScript中数据类型转换总结

    在js中,数据类型转换分为显式数据类型转换和隐式数据类型转换。 1, 显式数据类型转换 a:转数字: 1)Number转换: 代码: var a = “123”; a = Number(a); 注意: a) 如果转换的内容本身就是一个数值类型的字符...

    关于javascript中的parseInt使用技巧

    后来一查才明白,parseInt实际上有两个参数,第一个是要转换的值,第二个是指定的进制。如果不指定第二个参数,那么它只能正确地转换01到07(即把它们转换成1到7),从08开始,它就会按照“0开头的是八进制数”的...

    JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法

    主要介绍了JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法,因转换的字符串数字都以0开头,导致parseInt函数在浏览器和Android WebView中转换结果不一样,本文给出了解决方法,需要的朋友可以参考下

    JavaScript的parseInt 进制问题

    今天在整理以前写过的一段根据周期值自动计算下次执行日期的js代码,发现一bug,我使用parseInt对源数据串进行转换,当输入类似:2009-05-05时,parseInt将把串的05做8进制转换,这样结果自然就不对了。

Global site tag (gtag.js) - Google Analytics