I personally wouldn't recommend accumulate's or mvel functions for
financial data in drools 4.0.5. Just try this code:
java.math.BigDecimal a = new java.math.BigDecimal("45.1");
java.math.BigDecimal b = new java.math.BigDecimal("40.0");
double c = a.doubleValue() - b.doubleValue();
return new java.math.BigDecimal(c);
(java.math.BigDecimal)
5.10000000000000142108547152020037174224853515625
More info at: http://jira.jboss.org/jira/browse/JBRULES-1322
With kind regards,
Geoffrey De Smet
Mark Proctor schreef:
ST wrote:
Hi,
There is a situation where BigDecimal is returned from a function.
But when
this BigDecimal is included as one of the conditions in a rule. I get a
ClassCastException about trying to cast to Integer. Below is an
example that
reproduces this error. Is this an expected behavior? If so, is there
any way
to avoid the error?
Ths is a known MVEL "feature". MVEL will narrow the value to what it
thinks is an appropriate value. There is no current workaround, I'm
discussing with the MVEL author on how we can address this for Drools in
the future.
package com.sample
import java.math.BigDecimal
rule "init1"
salience 1000
when
num : BigDecimal() from getBigDecimal("1")
then
System.out.println(num.compareTo(new BigDecimal("0")));
end
function BigDecimal getBigDecimal(String value) {
return new BigDecimal(value);
}
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users