]
Mario Fusco resolved DROOLS-674.
--------------------------------
Resolution: Rejected
If you write 69.99 you're in reality saying that the value is a double with all the
rounding issues it implies.
Saying explicitly that it is a BigDecimal (writing it as 69.99B) fixes the problem.
Rules with bigdecimal comparison not matched for certain values
---------------------------------------------------------------
Key: DROOLS-674
URL:
https://issues.jboss.org/browse/DROOLS-674
Project: Drools
Issue Type: Bug
Affects Versions: 5.5.0.Final, 6.2.0.CR3
Reporter: Joseph Alex
Assignee: Mario Fusco
Priority: Minor
Attachments: BigDecimalTestFragment.java
For rules which compare BigDecimal inputs against a range considering 2 decimal place
precision, match does not happen when the input equals certain upper bounds. Testcase
attached.
The rules match when the upper bound is specified with a < condition instead of <=
(i.e <70.00 instead of <=69.99) , which seem to indicate value seen by Drools is
somewhere between the two.
Envrionment:
Drools : 5.5.0.Final
Java version : Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
OS : CentOS release 6.1 (Final)