浏览代码

修复表达式计算中除法除不尽导致的错误问题

jacky6024 8 年之前
父节点
当前提交
5959e36d99
共有 1 个文件被更改,包括 2 次插入1 次删除
  1. 2 1
      urule-core/src/main/java/com/bstek/urule/runtime/ElCalculator.java

+ 2 - 1
urule-core/src/main/java/com/bstek/urule/runtime/ElCalculator.java

@@ -16,6 +16,7 @@
 package com.bstek.urule.runtime;
 package com.bstek.urule.runtime;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Collections;
 import java.util.Collections;
 import java.util.Stack;
 import java.util.Stack;
 
 
@@ -200,7 +201,7 @@ public class ElCalculator {
         	case '/':
         	case '/':
         		first=Utils.toBigDecimal(firstValue);
         		first=Utils.toBigDecimal(firstValue);
         		second=Utils.toBigDecimal(secondValue);
         		second=Utils.toBigDecimal(secondValue);
-        		result=first.divide(second);
+        		result=first.divide(second,10,RoundingMode.HALF_UP);
         		break;
         		break;
         	case '%':
         	case '%':
         		first=Utils.toBigDecimal(firstValue);
         		first=Utils.toBigDecimal(firstValue);