parseInt的问题 alert(0.0000002) == 2e-7也就是说parseInt()参数是string类型调用的时候参数先得转换成string即:parseInt((0.0000002).ToString());不是BUG。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 单精度(Single)和双精度(Double)型数值即为浮点数值,它表示的是带小数的实数。单精度型能精确到七位,而双精度能精确到15位。看来javascript中的Number为单精度类型。alert(100000000000000000001 == 100000000000000000000) 为 "true"; 看来超过精度就会变成1并不止小数alert(parseInt(1000000000000000000000)); 这也是1我也想是精度问题但搞不懂为什么显示1而不是0原来只要超过精度就是1 简单的说,超过精度的数组转换为字符串后就是科学计数法,如:1e27、2e-8等,而parseInt()只处理首位的数字字符,即:1e27、2e-8。可以考虑用parseFloat代替parseIntparseInt方法可以理解成这样:function parseInt(param) { return parseFloat(/^\d+/.exec(param.toString()));} 延伸一下,样式表中的数字也可以用科学计数法!<div style="width:1e2px;height:2e2px;background-color:Red;"></div>测试的结果即真理 alert(0.000000001)得到1e-9parseInt 会先把这个数转成字符串的“1e-9”变成parseInt("1e-9")所以得到1了 alert(0.000000001)得到1e-9parseInt 会先把这个数转成字符串的“1e-9”变成parseInt("1e-9")所以得到1了 alert(0.1000000000000021 == 0.1000000000000022) // falsealert(0.10000000000000021 == 0.10000000000000022) // true纠正一下前面的说法,经过进一步测试:Number是双精度(Double),而不是单精度(Single)双精度(Double)精确到15-16位 我一直就想是精度问题没想到即使参数是数字parseInt 也会转成字符看来以后对数字还是用math的方法好了 急求解!!!JavaScript中如何使用IHTMLWindow2接口??? 请大侠们指点迷津 有关js闭包的运行机制 javascript开发win7工具--添加快捷方式代码 庖丁解牛——由企业级应用与网站的疑惑想到的~~~ 背景图片上定位光标位置并保存? 代码共享:表格客户端排序,欢迎优化算法 jquery 事件更换问题 请高手正则表达式,验证输入输入0到10的数 在用javascript做计算时,怎样格式话结果浮点数小数点后的位数 模态窗口的问题--小弟肤浅,还望指教 高分请教,高手进入看看我的程序错在那里 关于onblur事件,文本获取焦点并全选内容的问题
单精度型能精确到七位,而双精度能精确到15位。
看来javascript中的Number为单精度类型。alert(100000000000000000001 == 100000000000000000000) 为 "true";
并不止小数
alert(parseInt(1000000000000000000000));
这也是1
我也想是精度问题但搞不懂为什么显示1而不是0
原来只要超过精度就是1
function parseInt(param) {
return parseFloat(/^\d+/.exec(param.toString()));
}
<div style="width:1e2px;height:2e2px;background-color:Red;"></div>测试的结果即真理
得到1e-9
parseInt 会先把这个数转成字符串的“1e-9”
变成parseInt("1e-9")
所以得到1了
得到1e-9
parseInt 会先把这个数转成字符串的“1e-9”
变成parseInt("1e-9")
所以得到1了
alert(0.10000000000000021 == 0.10000000000000022) // true纠正一下前面的说法,经过进一步测试:Number是双精度(Double),而不是单精度(Single)
双精度(Double)精确到15-16位
没想到即使参数是数字parseInt 也会转成字符
看来以后对数字还是用math的方法好了