Bladeren bron

修改roundTo处理小于0的数值的bug

zhangyin 7 jaren geleden
bovenliggende
commit
a5fce8ddb0
1 gewijzigde bestanden met toevoegingen van 14 en 0 verwijderingen
  1. 14 0
      public/web/scMathUtil.js

+ 14 - 0
public/web/scMathUtil.js

@@ -7,14 +7,28 @@ let scMathUtil = {
         let lFactor = Math.pow(10, digit);
         let fOffSet = 0.5;
         let sign = '';
+        // 处理符号
         if (num < 0){
             sign = '-';
             num = Math.abs(num);
         }
+        // 计算
         let result = Math.floor((num / lFactor) + fOffSet).toString();
         let iLength = result.length;
+        // 因为数值被转为整数计算,当目标位数在小数点后,且数值小于0,需要补齐前面的位数
+        if (iLength < -digit){
+            result = zeroString(-digit) + result;
+        }
+        // 当目标位数在小数点前,需要补齐后面的位数
+        else if ((digit > 0) && (iLength < digit)){
+            result = result + zeroString(digit);
+        }
+        iLength = result.length;
+        // 获得小数点前的数字
         let r1 = result.substring(0, iLength + digit);
+        // 获得小数点后的数字
         let r2 = result.substring(iLength + digit, iLength);
+        // 拼出完整结果
         return Number(sign + r1 + '.' + r2);
     },
     floatToBin: function(num) {