关于Number.toFixed()的总结
来源:互联网 发布:python遍历一个字符串 编辑:程序博客网 时间:2024/05/18 08:30
关于Number.toFixed()函数的总结
前言
今天工作中遇到了一个需求,需要将类似于 1.99999
这样的数字格式化为 2.00
这样的两位小数。本来打算自己实现一个类似的功能函数,但是没想到看起来容易,实际实现起来却还是有点复杂的,就例如逢9进位这样的功能就让我想的有点头疼。索性考虑起来大谷歌来实现这样的功能。
没想到谷歌一下发现,居然 JS 中现成的函数 Number.toFixed()
来实现我这样的需求。赶紧查阅了MDN,然后写下这篇文章来总结一下 Number.toFixed()
的各个方面。
语法
numObj.toFixed(digits)
参数
digits
小数点后数字的个数;介于 0 到 20 (包括)之间,实现环境可能支持更大范围。如果忽略该参数,则默认为 0返回值
该方法不会改变原数值。
该方法会返回一个数值的字符串表现形式,保留 digits
位小数。
如果有必要会进行四舍五入。
如果原数字位数不足 digits
位则会补零。
如果数值大于 1e+21,该方法会简单调用 Number.prototype.toString()
并返回一个指数记数法格式的字符串。
异常
RangeError
如果 digits
参数太小或太大则可能抛出此异常。一般来说 0 到 20(包括)之间的值不会引起 RangeError。实现环境(implementations)也可以支持更大或更小的值 TypeErrpr
如果该方法在一个非Number类型的对象上调用将会抛出此异常真实需求
在实际情况中我们可能会面对这样的需求:如果数字小数点后位数大于两位则格式化到两位,如果不大于两位则不格式化。即不需要 Number.toFixed()
函数的补零功能。我们可以这样实现:
function () { let valueStr = value.toString() if (valueStr.indexOf('.') !== -1 && valueStr.split('.')[1].length > 2) { return value.toFixed(2) } else { return value } }
在这个函数中,我们通过判断 '.'
是否存在,以及 '.'
之后数字的个数来判断我们是否需要格式化,这样就完美解决了我们的需求。
参考资料
Number.prototype.toFixed() - JavaScript | MDN
0 0
- 关于Number.toFixed()的总结
- 关于四舍五入的问题,toFixed()
- 关于四舍五入的问题,toFixed()
- 关于四舍五入的问题,toFixed()
- 关于四舍五入的问题,toFixed()
- JavaScript Number对象的toFixed() 方法
- javascript NUMBER toFixed()函数
- Number.toFixed() 函数详解
- <javascript>Number.prototype.toFixed小记
- JS四舍五入函数-- toFixed(number)
- 关于js的toFixed方法的使用注意点
- toFixed() 方法可把 Number 四舍五入为指定小数位数的数字-js
- JS的toFixed()方法
- js number() ,parseFloat(), toFixed(), toPrecision() ,round()函数
- js入门(1)——小数点定位 [ Math对象的 pow(),Number对象的toFixed()]
- Java 中关于Version Number的一点总结
- 关于不同浏览器对toFixed四舍五入时对临界值处理的不同
- toFixed 四舍五入的小问题
- [C++]关键字extern
- 搭建Maven私服(使用Nexus)
- 数值计算第一次实验(C语言版)
- MFC 如何改变某个子控件的文本颜色
- 神经网络梯度消失的解释
- 关于Number.toFixed()的总结
- python学习(2)python基础、字符串和编码
- 将自己的python程序打包成exe(秀同学一脸呐)
- 斯坦福大学第七讲-最优间隔分类器
- sdut 3893 Return of the Nim(matrix nim)
- Android常见的几种移动支付
- java 服务器接口快速开发之servlet详细教程
- 【数据结构实验四】数组
- 关于重定向RedirectAttributes的用法