社区
Java SE
帖子详情
parseInt有BUG,谁能知道为什么!
Ozzman
2002-07-10 11:30:38
year = parseInt("2002");
month = parseInt("07");
day = parseInt("09");
alert(day);
alert结果为0,出错!
想切磋到:OzzyJMalmsteen@yahoo.com
...全文
54
4
打赏
收藏
parseInt有BUG,谁能知道为什么!
year = parseInt("2002"); month = parseInt("07"); day = parseInt("09"); alert(day); alert结果为0,出错! 想切磋到:OzzyJMalmsteen@yahoo.com
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zjhua
2002-07-10
打赏
举报
回复
parseInt()函数用于将字符串值转换成整数。parseInt()函数返回字符串的第一个整数,如果字符串不以整数开头则返回0。注意这里parseInt()函数将09当作8进制来处理的,当然没有09这样的整数(8进制),所以只返回0!
改为day = parseInt("011");或day = parseInt("0x9");或用十进制,都能得到正确的信息。
zjhua
2002-07-10
打赏
举报
回复
parseInt()函数用于将字符串值转换成整数。parseInt()函数返回字符串的第一整数,如果字符串不以整数开头则返回0。没有09这样的整数,当然只返回0(但有0这样的整数,所以返回0)!
Kyle-soft
2002-07-10
打赏
举报
回复
一个简单的方法:
day = parseInt(parseFloat("09"));//返回要么为整数要么NaN(isNaN检测)
alert(day);
zhiwen_huang
2002-07-10
打赏
举报
回复
you must use
day = parseInt("09",10);
parseInt 方法
返回由字符串转换得到的整数。
parseInt(numString, [radix])
参数
numString
必选项。要转换为数字的字符串。
radix
可选项。在 2 和 36 之间的表示 numString 所保存数字的进制的值。如果没有提供,则前缀为 '0x' 的字符串被当作十六进制,前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的。
说明
parseInt 方法返回与保存在 numString 中的数字值相等的整数。如果 numString 的前缀不能解释为整数,则返回 NaN(而不是数字)。
parseInt("abc") // 返回 NaN。
parseInt("12abc") // 返回 12。可以用 isNaN 方法检测 NaN。
【前端笔记】
parseInt
的精度
bug
解决
parseInt
(9.261 * 10000)//输出92609 这时候需要把* 10000替换成/ Math.pow(10, -4)。
parseInt
(x / Math.pow(10, -4))//输出92610 这应该是
parseInt
的一个
bug
,因为小数位数也不是很多。
JS拾遗篇之
parseInt
parseInt
基础语法
parseInt
(string[, radix]); //将 radix进制的string转换为10进制数返回。 string:要被解析的值。如果参数不是一个字符串,则将其转换为字符串(使用 toString )。字符串开头的空白符将会被忽略。 radix(可选):从 2 到 36,表示字符串解析时的基数。例如指定 16 表示被解析值是十六进制数。请注意,10不是默认值! 返回值为NaN的情况: radix<2 radix>36 第一个非空格字符不能转换为数
Javascript 函数
parseInt
()转换丢失精度出现
bug
Javascript 函数
parseInt
()转换时出现
bug
,
parseInt
(1.13*100),实际返回值是112,此处,1.13可以是1.13、1.14、1.15、1.16,而且仅此四个数才会出现以上
bug
。
关于javascript中
parseInt
函数的一个所谓的
bug
最近我正在升级一个日历控件,出现了一些莫名其妙的错误,最后发现原来是一个
parseInt
函数的一个所谓的
bug
引起的,就是在
parseInt
("08") 和
parseInt
("09") 处理时返回的居然都是 0 ,而 parseFloat函数就没有这样的错误,没办法,我将所有用到
parseInt
函数的地方都改成了parseFloat函数。 最后经过测试才发现,原来当前面有0的时候,par
js
parseInt
()
bug
或者说 注意事项
2.在JS中无论是整数还是小数都是按照64位的浮点数形式存储,而整数运算会自动转化为32位有符号整数。这是定义 所以用这个函数取整 需要特别注意,因为第一个参数是字符串。1.js只有一种number 类型 就是 64位浮点数。解析一个字符串并返回指定基数的十进制整数。所以需要使用 Math.floor 替代。测试结果 js 1 正确。
Java SE
62,615
社区成员
307,318
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章