[rules-users] Order of operations

Joe White Joe.White at recondotech.com
Wed Apr 9 12:31:13 EDT 2008


I have a question regarding order of operations in the consequence of a
rule when using the mvel dialect. When executed the Drl below provides
Right =30.0 and Wrong =140.0. The only difference is the parens around
the multiplying expressions, which shouldn't be necessary given order of
operations. Is this a problem with the drools/mvel interaction or is it
completely an issue with mvel? 

 

Is the general expectation that all expressions must be completely
scoped by parens when using mvel? 

 

package test;

dialect "mvel"

rule "test 11"

    when

 

    then

        double rightVal=((10-5)*2) + (5*(8-4));

        double wrongVal=(10-5)*2 + 5*(8-4);

 

        System.out.println("Right ="+rightVal);

        System.out.println("Wrong ="+wrongVal);

End

 

After execution:

Right =30.0 

Wrong =140.0

 

 

Thank you for all of your help. We are using drools 4.0.4.

 

Joe

 

Also, I haven't figured out how it arrives at 140. The following format
also produces 140, which seems a little more strange.

        double wrongVal=10-5*2 + 5*8-4;

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20080409/5163466d/attachment.html 


More information about the rules-users mailing list