Revision 46901 trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/DivOperator.java

View differences:

DivOperator.java
27 27
            return null;
28 28
        }
29 29
        int type = this.getType(op1, op2);
30
        if( (type & TYPE_BIGDECIMAL) == TYPE_BIGDECIMAL ) {
31
            BigDecimal value = getBigDecimal(op1,1).divide(getBigDecimal(op2,2));
32
            return value;
33
        }
34 30
        if( (type & TYPE_DOUBLE) == TYPE_DOUBLE ) {
35 31
            double value = getDouble(op1,1) / getDouble(op2,2);
36 32
            checkDoubleValue(value);
......
41 37
            checkDoubleValue(value);
42 38
            return value;
43 39
        }
40
        if( (type & TYPE_BIGDECIMAL) == TYPE_BIGDECIMAL ) {
41
            try {
42
                BigDecimal value = getBigDecimal(op1,1).divide(getBigDecimal(op2,2));
43
                return value;
44
            } catch(ArithmeticException ex) {
45
                double v1 = getDouble(op1,1) / getDouble(op2,2);
46
                BigDecimal value = BigDecimal.valueOf(v1);
47
                return value;
48
            }
49
        }
44 50
        if( (type & TYPE_LONG) == TYPE_LONG ) {
45 51
            long value = getLong(op1,1) / getLong(op2,2);
46 52
            return value;

Also available in: Unified diff