作家
登录

JavaScript的parseInt 取整使用

作者: 来源:www.28hudong.com 2013-03-30 00:53:16 阅读 我要评论

Java 也有 Integer.parseInt() 方法, 但是 JavaScript 的 parseInt 处理方式与 Java 等强整型语言不太一样, 所以经常有人因为对这个方法的使用不当而获得异常返回. 下面是一段 Java 代码, 用于将字符串 020 转为整型. 复制代码 代码如下: public class Test { public static void main(String args[]) throws Exception { String str = "020"; System.out.println(Integer.parseInt(str)); } } 输出结果是 20 下面是一段 JavaScript 代码, 同样是将字符串 020 转为整型. 复制代码 代码如下: var str = "020"; var num = parseInt(str); alert(num); 输出结果是 16 为什么呢? 无论是 Java 还是 JavaScript, parseInt 方法都有两个参数, 第一个参数就是要转换的对象, 第二个参数是进制基数, 可以是 2, 8, 10, 16, 默认以 10 进制处理. 但在 JavaScript 中, 0 开始的数被认为使用 8 进制处理, 0x 的数被认为是用 16 进制来处理. 所以上面的 JavaScript 代码计算错误了. 影响大吗? 大! 很大! 因为这个经常用于计算价钱, 一旦价格错误, 对用户来说, 这是误导, 而一个好的网站不应该出现这种误导用户的. 下面的 DEMO 中, 没有指定进制. 大家可以在数量框中输入一个以 0 开头的数字, 在点击计算按钮, 算出来的数值将比预想中的小一些, 或者小很多 (如: 8 进制中没有 019 这样的数值, 所以数值变成了 1, 9 被忽略掉). 没有为 parseInt 函数指定进制的 DEMO 如何修改? 前面说过, 有两个参数, 第二个参数可以指定计算使用的进制. 复制代码 代码如下: parseInt(num, radix); 所以我们可以将前面有问题的那段 JavaScript 代码改写为下面的代码. 复制代码 代码如下: var str = "020"; var num = parseInt(str, 10); alert(num); 这样处理的话, 我们再重写一些前面的 DEMO, 如下: 为 parseInt 函数指定进制为 10 的 DEMO 记住了, 在 JavaScript 上使用 parseInt 方法时要带上进制参数.

  推荐阅读

  JS焦点图切换,上下翻转

复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta >>>详细阅读


本文标题:JavaScript的parseInt 取整使用

地址:http://www.17bianji.com/kaifa2/JS/24602.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)