首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >四舍六入,五看奇偶

四舍六入,五看奇偶

作者头像
用户7293182
发布2022-01-13 17:05:19
发布2022-01-13 17:05:19
56000
举报
文章被收录于专栏:jQuery每日经典jQuery每日经典
运行总次数:0

一、toFixed方法说明

toFixed() 方法使用定点表示法来格式化一个数。

代码语言:javascript
代码运行次数:0
运行
复制
numObj.toFixed(digits)

参数

  • digits
  • 小数点后数字的个数;介于 0 到 20 (包括)之间,实现环境可能支持更大范围。如果忽略该参数,则默认为 0。

返回值

一个数值的字符串表现形式,不使用指数记数法,而是在小数点后有 digits 位数字。该数值在必要时进行四舍五入,另外在必要时会用 0 来填充小数部分,以便小数部分有指定的位数。 如果数值大于 1e+21,该方法会简单调用 Number.prototype.toString()并返回一个指数记数法格式的字符串。

示例

1. 看下面示例,四舍五入是没问题的对吧

2. 如果把整数部分换成1,试试看

看到没,1.45 保留一位小数成了1.4,被舍去了

正如标题所说的 四舍六入,五看奇偶

解决方法

Firefox 和 Chrome的实现没有问题,根本原因是计算机里浮点数精度丢失问题。修复方式改为

// toFixed 修复function toFixed(num, s) { var times = Math.pow(10, s) var des = num * times + 0.5 des = parseInt(des, 10) / times return des + ''}

或者直接向 Number 的原型重新定义该方法

// toFixed 修复Number.prototype.toFixed = function(s) { var times = Math.pow(10, s) var des = this * times + 0.5 des = parseInt(des, 10) / times return des + ''}

修改后的示例:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 jQuery每日经典 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参数
  • 返回值
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档