`
tidus
  • 浏览: 9230 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Javascript 中截取小数位并实现四舍五入的方法

阅读更多
Javascript 1.5 新增函数

在 Javascript 1.5 (IE5.5+ , NS6+ 以上版本支持)中,新增了2个专门用于货币流通的函数:
Number.toFixed(x) 和 Number.toPrecision(x)。

Number.toFixed(x) 是将指定数字截取小数点后 x 位, Number.toPrecision(x) 是将整个数字截取指定(x)长度。注意,一个是计算小数点后的长度,一个是计算整个数字的长度 。

请看完整示例:

<script type="text/javascript">
  var aa = 2.3362;
  document.write(aa.toFixed(1)); //2.3
  document.write(aa.toFixed(2)); //2.34
  document.write(aa.toPrecision(2)); //2.3
  document.write(aa.toPrecision(3)); //2.34
  document.write(Math.round(aa * 10) / 10); //2.3
  document.write(Math.round(aa * 100) / 100); //2.34
</script>


显然,新增的 2 个专用函数使用非常方便,但是因为是新增函数,所以要考虑浏览器支持问题,请根据您的客户群选择对应的方法。

发现 Number.toFixed() 多浏览器兼容BUG
1.255.toFixed(2);
//return
//chrome: 1.25
//ie: 1.26
//firefox: 1.25

换个数值,结果却正确
1.155.toFixed(2);
//chrome: 1.16
//ie: 1.16
//firefox: 1.16

 
//重写toFixed方法
Number.prototype.toFixed=function(len) {
     var add = 0;
     var s,temp;
     var s1 = this + "";
     var start = s1.indexOf(".");
     if(s1.substr(start+len+1,1)>=5)add=1;
     var temp = Math.pow(10,len);
     s = Math.floor(this * temp) + add;
     return s/temp;
 };
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics