目录
  • 一、前言
  • 二、四舍五入相关
    • 2.1 toFixed() 方法
    • 2.2 Math.floor() 不四舍五入 ,向下取整
    • 2.3 字符串匹配
    • 2.4 四舍五入保留2位小数
    • 2.5 四舍五入保留2位小数 不够位数,则用0替补
  • 三、浮点数保留两位小数
    • 3.1 将浮点数四舍五入,取小数点后2位
    • 3.2 强制保留2位小数
    • 3.3 保留两位小数 浮点数四舍五入 位数不够 不补0
  • 四、拓展阅读

    一、前言

    此博文把相关保留两位小数的方法总结了一下,不同的场景用不同的方法,即用即取。

    二、四舍五入相关

    2.1 toFixed() 方法

    注意,保留两位小数,将数值类型的数据改变成了字符串类型。

     var num =2.446242342;  
     num = num.toFixed(2); 
     console.log(num); //2.45
     console.log(typeof num); // string

    2.2 Math.floor() 不四舍五入 ,向下取整

    注意,不改变数据类型。

    num = Math.floor(num * 100) / 100;
    console.log(num); //2.44
    console.log(typeof num); // number

    2.3 字符串匹配

    注意,先将数据转换为字符串,最后再转为数值类型。

    num = Number(num.toString().match(/^\d+(?:\.\d{0,2})?/));
    console.log(num); //2.44
    console.log(typeof num); // number

    2.4 四舍五入保留2位小数

    若第二位小数为0,则保留一位小数

    注意,数据类型不变。

    function keepTwoDecimal(num) {
       var result = parseFloat(num);
       if (isNaN(result)) {
           alert('传递参数错误,请检查!');
           return false;
       }
       result = Math.round(num * 100) / 100;
       return result;
    };
     keepTwoDecimal(num);
     console.log(num); //2.44
     console.log(typeof num); //number

    2.5 四舍五入保留2位小数 不够位数,则用0替补

    注意,数据类型变为字符串类型。

    function keepTwoDecimalFull(num) {
      var result = parseFloat(num);
      if (isNaN(result)) {
          alert('传递参数错误,请检查!');
          return false;
      }
      result = Math.round(num * 100) / 100;
      var s_x = result.toString(); //将数字转换为字符串
      var pos_decimal = s_x.indexOf('.'); //小数点的索引值
      // 当整数时,pos_decimal=-1 自动补0
      if (pos_decimal < 0) {
          pos_decimal = s_x.length;
          s_x += '.';
      }
      // 当数字的长度< 小数点索引+2时,补0
      while (s_x.length <= pos_decimal + 2) {
          s_x += '0';
      }
      return s_x;
    }
     console.log(keepTwoDecimalFull(120.5)); //120.50
     console.log(typeof keepTwoDecimalFull(120.5)); //string
     console.log(keepTwoDecimalFull(2.446242342)); //2.45
     console.log(typeof keepTwoDecimalFull(2.446242342)); //string

    三、浮点数保留两位小数

    3.1 将浮点数四舍五入,取小数点后2位

    注,数据类型不变。

    function toDecimal(x) {
     var f = parseFloat(x);
     if (isNaN(f)) {
      return;
     }
     f = Math.round(x*100)/100;
     return f;
    }
    console.log(toDecimal(3.1465926)); // 3.15
    console.log(typeof toDecimal(3.1415926)); //number

    3.2 强制保留2位小数

    如:2,会在2后面补上00.即2.00

    注意,数据类型变为字符串类型。

    function toDecimal2(x) {
     var f = parseFloat(x);
     if (isNaN(f)) {
      return false;
     }
     var f = Math.round(x*100)/100;
     var s = f.toString();
     var rs = s.indexOf('.');
     if (rs < 0) {
      rs = s.length;
      s += '.';
     }
     while (s.length <= rs + 2) {
      s += '0';
     }
     return s;
    }
    console.log(toDecimal2(3.1)); // 3.10
    console.log(typeof toDecimal2(3.1415926)); //string

    3.3 保留两位小数 浮点数四舍五入 位数不够 不补0

    注意,数据类型不变。

    function fomatFloat(src,pos){
      return Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);
    }
     console.log(fomatFloat(3.12645,2)); // 3.13
    console.log(typeof fomatFloat(3.1415926)); //number

    以上就是常用的js保留两位小数的方法,希望对大家有帮助!

    四、拓展阅读

    JavaScript 浮点数精度计算

    到此这篇关于JavaScript中保留两位小数的方法总结的文章就介绍到这了,更多相关JavaScript保留两位小数内容请搜索本网站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本网站!

    您可能感兴趣的文章:

    • js保留两位小数最简单的实现方法
    • javascript保留两位小数的实现方法你了解吗
    • js保留两位小数方法总结
    • javascript实现保留两位小数的多种方法
    • JavaScript保留两位小数的2个自定义函数
    • JS格式化数字保留两位小数点示例代码