zoukankan      html  css  js  c++  java
  • vue 重写toFixed---四舍六入五取偶

        /**
         * 重写toFixed---四舍六入五取偶
         * @param {*} length 截取长度
         * @param {*} num 截取数值
         * https://blog.csdn.net/qq_38523017/article/details/83989543
         */
        Vue.prototype.$toFixed = function (length, inputNum) {
          if (inputNum === null) inputNum = 0;
          var carry = 0; //存放进位标志
          var num, multiple; //num为原浮点数放大multiple倍后的数,multiple为10的length次方
          var str = inputNum + ""; //将调用该方法的数字转为字符串
          var dot = str.indexOf("."); //找到小数点的位置
          if (dot != -1 && str.substr(dot + length + 1, 1) >= 5) {
            carry = 1; //找到要进行舍入的数的位置,手动判断是否大于等于5,满足条件进位标志置为1
          }
          multiple = Math.pow(10, length); //设置浮点数要扩大的倍数
          let multiply = this.$numMulti(inputNum, multiple); //小数相乘精度问题
          num = Math.floor(multiply) + carry; //去掉舍入位后的所有数,然后加上我们的手动进位数
          var result = num / multiple + ""; //将进位后的整数再缩小为原浮点数
    
          /*
           * 处理进位后无小数
           */
          dot = result.indexOf(".");
          if (dot < 0) {
            result += ".";
            dot = result.indexOf(".");
          }
    
          /*
           * 处理多次进位
           */
          var len = result.length - (dot + 1);
          if (len < length) {
            for (var i = 0; i < length - len; i++) {
              result += 0;
            }
          }
          return result;
        };
        //乘法丢失精度问题
        Vue.prototype.$numMulti = function (num1, num2) {
          var baseNum = 0;
          try {
            baseNum += num1.toString().split(".")[1].length;
          } catch (e) {}
          try {
            baseNum += num2.toString().split(".")[1].length;
          } catch (e) {}
          return (
            (Number(num1.toString().replace(".", "")) *
              Number(num2.toString().replace(".", ""))) /
            Math.pow(10, baseNum)
          );
        };
        /**

    参考链接:

     https://blog.csdn.net/qq_38523017/article/details/83989543
  • 相关阅读:
    PHP里文件的查找方式及写法
    上传文件
    用ajax对数据进行查看人员信息
    ajax实现分页
    jquery做个日期选择适用于手机端
    PHP用ajia代码写三级联动下拉
    JSON数据的定义
    jquery做一些小的特效
    对jquery操作复选框
    使用 LUT 模拟光照
  • 原文地址:https://www.cnblogs.com/zhaomeizi/p/14349919.html
Copyright © 2011-2022 走看看