首页 > 计算机技术 > 前端开发 > JavaScript

JavaScript实现保留小数点后几位,自动补零,四舍五入

原创 lihf8515 2025年02月07日 10:55
来源:本站 阅读:475

JavaScript并没有现成的保留小数点后几位,四舍五入的函数。因此,我们自己编写一个。

源代码中需要说明的是:

Object.is()是es6引入的、用于判断两个或者多个数据是否全等的方法。很重要的一个特点是Object.is(NaN,NaN)的结果是true。这里是判断这个值是否为数字,如果不为数字则 方法parseFloat 方法就不能转换,这里就会显示为true。

Number.EPSILON 可以用来设置“能够接受的误差范围”。比如,误差范围设为 2 的-50 次方(即Number.EPSILON * Math.pow(2, 2)),即如果两个浮点数的差小于这个值,我们就认为这两个浮点数相等, 这里是设置最小误差值 。

Math.pow 原始方法 这里是求 10的多少次方。

代码如下:

/**
 * 保留小数点几位数, 自动补零, 四舍五入
 * @param num: 数值
 * @param digit: 小数点后位数
 * @returns string
 * Object.is()是es6引入的、用于判断两个或者多个数据是否全等的方法。很重要的一个特点是Object.is(NaN,NaN)的结果是true  这里是判断这个值是否为数字 如果不为数字则 方法parseFloat 方法就不能转换 这里就会 显示为true
 * Number.EPSILON  可以用来设置“能够接受的误差范围”。比如,误差范围设为 2 的-50 次方(即Number.EPSILON * Math.pow(2, 2)),即如果两个浮点数的差小于这个值,我们就认为这两个浮点数相等。 这里是设置最小误差值 
 * Math.pow  原始方法 这里是求 10的多少次方
 */
function myFixed(num, digit) {
  if(Object.is(parseFloat(num), NaN)) {
    return console.log(`传入的值:${num}不是一个数字`);
  }
  num = parseFloat(num);
  return (Math.round((num + Number.EPSILON) * Math.pow(10, digit)) / Math.pow(10, digit)).toFixed(digit);
}
作者
昵称:君子如兰
注册时间:2025-01-31 02:47:34
最近更新:2026-01-25 14:46:57
文章总数:94篇
原创 88篇   转载 6篇
友情链接: 海峰收银系统  
Copyright © 2025 hfsoft.top All Rights Reserved.
中华人民共和国工业和信息化部ICP备案序号:皖ICP备2025073039号