Explorar el Código

解决现金计算错误

hurugang hace 2 años
padre
commit
f118876ca1

+ 16 - 4
src/main/resources/static/js/common/math.js

@@ -4,7 +4,7 @@ function Add(arg1, arg2) {
     try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
     try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
     m = Math.pow(10, Math.max(r1, r2))
-    return ((arg1 * m + arg2 * m) / m).toFixed(2);
+    return toDecimal((arg1 * m + arg2 * m) / m);
 }
 //修改之后的减法
 function Minus(arg1, arg2) {
@@ -15,14 +15,14 @@ function Minus(arg1, arg2) {
     //动态控制精度长度
    // n = (r1 >= r2) ? r1 : r2;
    // return ((arg1 * m - arg2 * m) / m).toFixed(n);
-    return ((arg1 * m - arg2 * m) / m).toFixed(2);
+    return toDecimal((arg1 * m - arg2 * m) / m);
 }
 //修改之后的乘法
 function Multiply(arg1, arg2) {
     var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
     try { m += s1.split(".")[1].length } catch (e) { }
     try { m += s2.split(".")[1].length } catch (e) { }
-    return (Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)).toFixed(2);
+    return toDecimal(Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m));
 }
 //修改之后的除法
 function Division(arg1, arg2) {
@@ -32,6 +32,18 @@ function Division(arg1, arg2) {
     with (Math) {
         r1 = Number(arg1.toString().replace(".", ""))
         r2 = Number(arg2.toString().replace(".", ""))
-        return ((r1 / r2) * pow(10, t2 - t1)).toFixed(2);
+        return toDecimal((r1 / r2) * pow(10, t2 - t1));
     }
 }
+
+
+//保留两位小数
+//功能:将浮点数四舍五入,取小数点后2位
+function toDecimal(x) {
+    var f = parseFloat(x);
+    if (isNaN(f)) {
+        return;
+    }
+    f = Math.round(x*100)/100;
+    return f;
+}

+ 2 - 2
src/main/resources/static/js/mz/toll_administration.js

@@ -1084,7 +1084,7 @@ function closeThisParent(obj) {
  */
 function checkFee(flag) {
     var realMoney = parseFloat($("#realMoney").val());
-    realMoney = realMoney.toFixed(2);
+    realMoney = toDecimal(realMoney);
     $("#realMoney").val(realMoney);
     var arr = $("#payForm").find("div.pay-item");
     if (arr.length > 0) {
@@ -1165,7 +1165,7 @@ function checkFee(flag) {
     if (realMoney < amountMoneyConfirm) {
         discount = Division(realMoney, Multiply(amountMoneyConfirm, 100));
     }
-    $("#discount").text(discount.toFixed(2))
+    $("#discount").text(toDecimal(discount));
     return true;
 }