使用parseInt时候出现的问题

今天写js的时候出现了一个问题很郁闷,就是用parseInt转换01,02到10的时候都能得到正确结果除了08,09出错了,返回了0。后来查看了parseInt的语法:

parseInt(string, radix);
其中string为要转换的字符串,radix为二进制,八进制,十六进制或十进制。
在默认不指定radix时,当以0x开关时,为十六进制;如果以0开关且第二位不为x,则让为是八进制,(因为八进制不能有8,9所以报错返回0)。
所以,在我们用时还是明确指定进位制,以防出错。
如我们平时都用十进制位,我们就 parseInt("08", 10);

使用parseInt时候出现的问题

时间: 2024-10-14 00:48:56

使用parseInt时候出现的问题的相关文章

Integer.parseInt()和valueOf()

parseInt("1")返回的是int类型,所以如果想要将一个String类型的数字串转为原始类型int ,建议使用这个方法, 而不是使用 valueOf("1"). 因为valueOf 返回的是Integer类型,调用该方法时内部也调用了parseInt 并且自动封装为Integer 类型.且通过valueOf 输出的值赋值给int 类型实际还需要Integer 自动拆箱为int类型, 通过编译后的class 我们看到实际 是该Integer 类型又调用了 in

parseint和parsefloat总结number。隐形转换

parseint:会认识一些字符+.-.空格,其他的就会截止譬如23hudhchauch结果为:23,对于boollen类型不能转换为1或是0. number:是对整体的转换.对true的转换为1. 显式类型转换(强制类型转换):Number()parseInt()parseFloat() 隐式类型转换: + 200 + '3' 变成字符串 - * / % '200' - 3 变成数字 ++ -- 变成数字 > < 数字的比较 .字符串的比较 ! 取反 把右边的数据类型转成布尔值 ==*/ /

Javascript - IE8下parseInt()方法的取值异常

公司的测试小妹妹跑来对我说,下拉框第9项始终无法正确提交的时候,我还以为见鬼了. parseInt()会把'0'开头的数字以8进制来解析,当有大于7的数字时候就按10进制来解析. // parseInt语法定义:radix为可选参数,默认为10进制. parseInt(string,radix); 08.09两个数字默认当成8进制转换,未成功所以就返回0.,然而IE8很敬业地以8进制来解析,不顾10进制的感受. 解决方案:指定进制参数 parseInt(’08’,10);

JavaScript基础使用parseInt()转换整数(005)

parseInt()可以把一个字符串格式的整数解析一个整数数值,如"32 days"将被解析为32.这个函数还接受第二个参数,指定整数的进制(当然,一般来说应该是十进制).一个好的习惯是,总是使用这第二个参数,以防一些意外的Bug的出现. var month = "06", year = "09", DECIMAL = 10: month = parseInt(month, DECIMAL); year = parseInt(year, DECI

深入了解parseInt

有这样一道题目 ["1", "2", "3"].map(parseInt); //[1, NaN, NaN] 为什么结果是这样?什么情况下返回NAN? 因为parseInt需要两个参数(val,radix),map传递了3个参数(elem,index,arr).如果想让parseInt(string,radix)返回NaN,有两种情况: 第1个参数不能转换成数字: 第2个参数不在2到36之间. 这里,我们猜测是第二种情况,重新定义parseInt

JavaScript基础 parseInt() 于字符串从左往右提取整数

镇场诗: 清心感悟智慧语,不着世间名与利.学水处下纳百川,舍尽贡高我慢意. 学有小成返哺根,愿铸一良心博客.诚心于此写经验,愿见文者得启发.------------------------------------------ code: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

Integer.parseInt不同jdk源码解析

执行以下代码: System.out.println(Integer.parseInt("-123")); System.out.println(Integer.parseInt("+123")); 以下仅提供1.6和1.7两个版本的比较  1.6版本执行结果为:    1.7版本执行结果为: 从两方面去查证结果的原因,分别是:查看API文档 和 查看对应的源代码 [查看API文档]  1.6版本对应的API文档:    1.7版本对应的API文档: 可以看出,对第

Javascript parseInt()和parseFloat()的用法

parseInt()方法首先查看位置0处的 字符,判断它是否是个有效数字:如果不是,该方法将返回NaN,不再继续执行其他操作.但如果该字符是有效数字,该方法将查看位置1处的字符,进行同样的 测试.这一过程将持续到发现非有效数字的字符为止,此时parseInt()将把该字符之前的字符串转换成数字. parseFloat()方法从位置0开始查看每个字符,直到找到第一个非有效的字符为止,然后把该字 符之前的字符串转换成数字. 不过,对于这个方法来说,第一个出现的小数点是有效字符.如果有两个小数点,第二

js parseInt()函数中的问题。。

今天在看<javascript 高级程序设计>时, 与我的输出结果不符合, <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <script> document.writeln(parseInt("11",8)); //9 document.wr

JavaScript中的parseInt和Number函数

函数作用: parseInt将字符串(String)类型转为整数类型. Number() 函数把对象(Object)的值转换为数字. 语法不同: parseInt(string, [radix]) string:必选参数,要被转换的字符串 radix:可选,数字的基数.取值范围在2~36. 如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN. <pre name="code" class="javascript"> alert(