前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个数字截取引发的精度问题(二)

一个数字截取引发的精度问题(二)

作者头像
前端黑板报
发布2018-01-29 16:53:19
7790
发布2018-01-29 16:53:19
举报
文章被收录于专栏:前端黑板报前端黑板报

上篇文章只是简单介绍了Number的 toFixed 方法,周末抽时间把 Number 里的一些方法又看了一下,其中有个方法引起我的注意:

代码语言:javascript
复制
Number.prototype.toPrecision()

precision 为"精度"的意思,貌似这个方法更符合上一篇文章所说的功能。可是事情并没有像我想象的一样,先看官方定义:

A string representing a Number object in fixed-point or exponential notation rounded to precision significant digits

大意:

返回一个定点和指数表示的同时四舍五入到指定位数的字符串。

再看一下使用方法,同时会总结出一些要点:

代码语言:javascript
复制
let PI = 3.1415926console.log(PI.toPrecision(6)) // 3.14159console.log(PI.toPrecision(4)) // 3.142console.log(PI.toPrecision(2)) // 3.1

1.按指定的数字截取数字位数,同时四舍五入。

代码语言:javascript
复制
let numObj = 0.000123console.log(numObj.toPrecision());    // '0.000123'console.log(numObj.toPrecision(5));   // '0.00012300'console.log(numObj.toPrecision(2));   // '0.00012'console.log(numObj.toPrecision(1));   // '0.0001' 

2.没有传入参数时,返回数字的字符串形式,3.截取的位置从左边第一个非0的数字开始算起,不足补0。

代码语言:javascript
复制
let numObj = 12345.6numObj.toPrecision(2) // '1.2e+4'

4.当传入的参数小于数字的整数位时,返回指数形式标识的字符串。

此方法用下来并没有达到我直觉认为的那样,这在一些金钱格式化上还不是很好用。

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

本文分享自 前端黑板报 微信公众号,前往查看

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

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

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