toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。

<script type="text/javascript">
    var num = new Number(13.37);
    document.write (num.toFixed(1))
</script>

 

Show the number 13.37 with one decimal:
13.4

 

NumberObject.toFixed(num)
参数    描述
num    必需。规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
toFixed方法是用来将一个数字保留指定的小方法。它返回的是一个字符串形式的结果,并且如果不够指定的位,会使用0进行补齐。然而,toFixed方法并不是以四舍五入的方式进行取舍的,而是使用银行家舍入法进行取舍的。银行家舍入法是一种四舍六入五取偶的方法。具体规则如下: - 当舍去位的值小于5时,直接舍去。 - 当舍去位的值大于等于6时,在舍去的同时向前进一位。 - 当舍去位的值等于5时: - 如果5后不为空且不全为0,则在舍去的同时向前进一位。 - 如果5后为空或全为0: - 如果5前的值为奇,则在舍去的同时向前进一位。 - 如果5前的值为偶,则直接舍去。 然而,有人发现使用toFixed方法时,遇到取舍位置为5的情况时会出现问题。例如,89.115.toFixed(2)会得到89.11而不是89.12。这是因为toFixed方法在遇到5时会出现问题。为了解决这个问题,有人重写了toFixed方法,使用了自定义的逻辑来进行四舍五入。具体的重写代码如下: ```javascript 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 + ""; }; ``` 这段代码重写了toFixed方法,使用了自定义的逻辑来进行四舍五入。但需要注意的是,这段代码并非官方提供的方法,使用时需要谨慎。 #### 引用[.reference_title] - *1* [JavaScript toFixed()四舍五入问题](https://blog.csdn.net/qq_38877858/article/details/108111072)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [toFixed方法无法精准四舍五入的问题](https://blog.csdn.net/weixin_42597658/article/details/116535343)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值