美文网首页
js中如何截取小数点后两位数字

js中如何截取小数点后两位数字

作者: 一名有马甲线的程序媛 | 来源:发表于2018-06-05 17:26 被阅读74次

今天给大家推荐几个亲测好用的截取小数点后几位数字的方法:

法一:Math.round法,保留两位小数

  // round() 方法可把一个数字舍入为最接近的整数。
  function math(){
    var num = 23.456322;
    console.log('数学方法');
    console.log(Math.round(num*100)/100);
  }
  math();

法二:toFixed方法进行四舍五入,强制保留两位小数,不够补0

  //  IE5.5+才支持
  function fixed(){
    var num = 23.456322;
    console.log('用toFixed方法进行四舍五入,强制保留两位小数,不够补0');
    console.log(num.toFixed(2));
  }
  fixed();

法三:不推荐,但也记录一下吧

// 最笨的办法
function get(){
  num = 23.456322 + '';
  var str = num.substring(0,num.indexOf(".") + 3);
  console.log('直接截取小数点后两位,不做四舍五入');
  console.log(str);
}
get();

代码实例:

功能:将浮点数四舍五入,取小数点后2位

  function toDecimal(x) {
      var f = parseFloat(x);
      if (isNaN(f)) {
          return;
      }
      f = Math.round(x*100)/100;
      return f;
  }
  console.log(toDecimal(num));

功能:四舍五入,随意保留几位小数

  function fomatFloat(num,pos){
    // Math.pow(x,y) x 的 y 次幂
    return Math.round(num*Math.pow(10, pos))/Math.pow(10, pos);
  }
  console.log("保留1位小数:" + fomatFloat(3.14559267, 1))

补充:input输入限制为小数点后两位

/**
 * input输入保留两位小数
 */
function clearNoNum(obj){
    // obj.value = obj.value.replace(/[^0-9-]+/,''); js写法
    obj.val(obj.val().replace(/[^\d.]/g,""));   //清除“数字”和“.”以外的字符
    obj.val(obj.val().replace(/\.{2,}/g,"."));  //只保留第一个. 清除多余的
    obj.val(obj.val().replace(".","$#$").replace(/\./g,"").replace("$#$","."));
    obj.val(obj.val().replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')); //只能输入两个小数
    if(obj.val().indexOf(".")< 0 && obj.val() !=""){//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
            obj.val(parseFloat(obj.val()));
    }
}

点击查看原文

相关文章

网友评论

      本文标题:js中如何截取小数点后两位数字

      本文链接:https://www.haomeiwen.com/subject/uslmsftx.html