Joe, Thanks, I added this information to the ticket too. Mike is already taking care of the problem.
In case you want to follow the progress: http://jira.codehaus.org/browse/MVEL-83 []s Edson 2008/4/9 Joe White <[EMAIL PROTECTED]>: > Another bug that I just came across while working on getting my parens > to work involved not handling scoped numbers properly. Similar to the > previous one, but different in that it ends the expression evaluation > prematurely. See the drl and result below: > > > > *package* test; > > *dialect* "mvel" > > *rule* "test 12" > > *when* > > > > *then* > > *double* rightVal=(10 + 12); > > *double* wrongVal=(10) + (12); > > *double* wrongValTwo = ((10)+12) > > System.out.println("Right "+rightVal); > > System.out.println("Wrong "+wrongVal); > > System.out.println("WrongTwo "+wrongValTwo); > > *End* > > * * > > *Results in:* > > Right 22.0 > > Wrong 10.0 > > WrongTwo 10.0 > > > > Thanks, > > Joe > > > > *From:* [EMAIL PROTECTED] [mailto: > [EMAIL PROTECTED] *On Behalf Of *Edson Tirelli > *Sent:* Wednesday, April 09, 2008 12:39 PM > *To:* Rules Users List > *Subject:* Re: [rules-users] Order of operations > > > > > Hi Joe, > > It seems someone skipped the elementary math lessons at school... :( > > Will open a JIRA for that. > > []s > Edson > > 2008/4/9 Joe White <[EMAIL PROTECTED]>: > > 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; > > > > > > > > > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > -- > Edson Tirelli > JBoss Drools Core Development > Office: +55 11 3529-6000 > Mobile: +55 11 9287-5646 > JBoss, a division of Red Hat @ www.jboss.com > > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > > -- Edson Tirelli JBoss Drools Core Development Office: +55 11 3529-6000 Mobile: +55 11 9287-5646 JBoss, a division of Red Hat @ www.jboss.com
_______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
