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;
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值