使用parseInt得到的值为“1e+38”,这个怎么转化为格式为“100000......”这样的整数呢?? 使用value = parseInt(a,10)+ parseInt(b,10);得到value为1e+38,即10的38次方,请问:这个怎么可以转化为普通的格式呢?如:100.....000 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script language="javascript" > alert(parseInt("你的数字",10).toFixed(0))</script> 恩,上面2位说的都不错,可是我还有个疑问parseInt这个方法对数字位数有没有限制???我这边数字大到一定程度的话,比如说100000000000000009,使用parseInt得到的并不是这个值,而是100000000000000008,很奇怪啊,难道位数长的数字就不能使用parseInt吗?那么使用哪个方法呢?ps:呵呵,上面2位结帖的时候我会给分的,再次感谢你们! 在我这里是好使的,这个方法对客户端的JS版本要求有点偏高,至少在IE5.0里这个方法用不起来,可能你的浏览器是的js版本比较低,我找了一个解决这个BUG的修正代码toFixed()方法修正if(typeof(Number.prototype.toFixed)!="function"){ Number.prototype.toFixed = function(d) { var s=this+"";if(!d)d=0; if(s.indexOf(".")==-1)s+=".";s+=new Array(d+1).join("0"); if (new RegExp("^(-|\\+)?(\\d+(\\.\\d{0,"+ (d+1) +"})?)\\d*$").test(s)) { var s="0"+ RegExp.$2, pm=RegExp.$1, a=RegExp.$3.length, b=true; if (a==d+2){a=s.match(/\d/g); if (parseInt(a[a.length-1])>4) { for(var i=a.length-2; i>=0; i--) {a[i] = parseInt(a[i])+1; if(a[i]==10){a[i]=0; b=i!=1;} else break;} } s=a.join("").replace(new RegExp("(\\d+)(\\d{"+d+"})\\d$"),"$1.$2"); }if(b)s=s.substr(1);return (pm+s).replace(/\.$/, "");} return this+""; };}若是想完全使用这个自定义的方法替代那个有BUG的系统方法的话,只需要去掉最外层的那个 if 判断就可以了。 在我这里是好使的,这个方法对客户端的JS版本要求有点偏高,至少在IE5.0里这个方法用不起来,可能你的浏览器是的js版本比较低,我找了一个解决这个BUG的修正代码toFixed()方法修正if(typeof(Number.prototype.toFixed)!="function"){ Number.prototype.toFixed = function(d) { var s=this+"";if(!d)d=0; if(s.indexOf(".")==-1)s+=".";s+=new Array(d+1).join("0"); if (new RegExp("^(-|\\+)?(\\d+(\\.\\d{0,"+ (d+1) +"})?)\\d*$").test(s)) { var s="0"+ RegExp.$2, pm=RegExp.$1, a=RegExp.$3.length, b=true; if (a==d+2){a=s.match(/\d/g); if (parseInt(a[a.length-1])>4) { for(var i=a.length-2; i>=0; i--) {a[i] = parseInt(a[i])+1; if(a[i]==10){a[i]=0; b=i!=1;} else break;} } s=a.join("").replace(new RegExp("(\\d+)(\\d{"+d+"})\\d$"),"$1.$2"); }if(b)s=s.substr(1);return (pm+s).replace(/\.$/, "");} return this+""; };}若是想完全使用这个自定义的方法替代那个有BUG的系统方法的话,只需要去掉最外层的那个 if 判断就可以了。 整数太大会失真的问题,请参考:http://topic.csdn.net/u/20071002/15/b35ca9a8-5e8d-4b58-bdb9-f31cc3f52c61.html 那么就是说当一个值大于Number.MAX_VALUE时,就不能使用parseInt了??那么我们在javascript里面如何处理呢??在java里面,当我们不能使用int,long的时候,可以使用biginteger,在javascript里面无法处理了??? 那么就是说当一个值大于Number.MAX_VALUE时,就不能使用parseInt了?? ---------------大于9007199254740992的就可能失真大于Number.MAX_VALUE的是当无穷大 关于中文乱码问题 奇了怪了!这么简单的code就是不行? 关于滤镜的兼容性问题 问一个js问题. 如何获取当前打开页面的句柄,此页面不是当前操作页面,比较难! 怎样用js创建表单并提交 jquery执行问题 如何动态增加输入框 求JS 高手解决个TAB 的问题!!! 问一个关于用javascript控制框架网页的问题 一个比较怪的问题 问一个ajax的问题
alert(parseInt("你的数字",10).toFixed(0))
</script>
parseInt这个方法对数字位数有没有限制???我这边数字大到一定程度的话,比如说100000000000000009,使用parseInt得到的并不是这个值,而是100000000000000008,很奇怪啊,难道位数长的数字就不能使用parseInt吗?那么使用哪个方法呢?
ps:呵呵,上面2位结帖的时候我会给分的,再次感谢你们!
toFixed()方法修正if(typeof(Number.prototype.toFixed)!="function")
{
Number.prototype.toFixed = function(d)
{
var s=this+"";if(!d)d=0;
if(s.indexOf(".")==-1)s+=".";s+=new Array(d+1).join("0");
if (new RegExp("^(-|\\+)?(\\d+(\\.\\d{0,"+ (d+1) +"})?)\\d*$").test(s))
{
var s="0"+ RegExp.$2, pm=RegExp.$1, a=RegExp.$3.length, b=true;
if (a==d+2){a=s.match(/\d/g); if (parseInt(a[a.length-1])>4)
{
for(var i=a.length-2; i>=0; i--) {a[i] = parseInt(a[i])+1;
if(a[i]==10){a[i]=0; b=i!=1;} else break;}
}
s=a.join("").replace(new RegExp("(\\d+)(\\d{"+d+"})\\d$"),"$1.$2");
}if(b)s=s.substr(1);return (pm+s).replace(/\.$/, "");} return this+"";
};
}
若是想完全使用这个自定义的方法替代那个有BUG的系统方法的话,只需要去掉最外层的那个 if 判断就可以了。
toFixed()方法修正if(typeof(Number.prototype.toFixed)!="function")
{
Number.prototype.toFixed = function(d)
{
var s=this+"";if(!d)d=0;
if(s.indexOf(".")==-1)s+=".";s+=new Array(d+1).join("0");
if (new RegExp("^(-|\\+)?(\\d+(\\.\\d{0,"+ (d+1) +"})?)\\d*$").test(s))
{
var s="0"+ RegExp.$2, pm=RegExp.$1, a=RegExp.$3.length, b=true;
if (a==d+2){a=s.match(/\d/g); if (parseInt(a[a.length-1])>4)
{
for(var i=a.length-2; i>=0; i--) {a[i] = parseInt(a[i])+1;
if(a[i]==10){a[i]=0; b=i!=1;} else break;}
}
s=a.join("").replace(new RegExp("(\\d+)(\\d{"+d+"})\\d$"),"$1.$2");
}if(b)s=s.substr(1);return (pm+s).replace(/\.$/, "");} return this+"";
};
}
若是想完全使用这个自定义的方法替代那个有BUG的系统方法的话,只需要去掉最外层的那个 if 判断就可以了。
http://topic.csdn.net/u/20071002/15/b35ca9a8-5e8d-4b58-bdb9-f31cc3f52c61.html
那么我们在javascript里面如何处理呢??
在java里面,当我们不能使用int,long的时候,可以使用biginteger,在javascript里面无法处理了???
---------------
大于9007199254740992的就可能失真
大于Number.MAX_VALUE的是当无穷大