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
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users