- From: <bugzilla@jessica.w3.org>
- Date: Tue, 25 Sep 2012 17:57:27 +0000
- To: www-validator-cvs@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=19011 Summary: Wrong validation of length 0.0 - use value.equals(BigDecimal.ZERO) instead of value==BigDecimal.ZERO Product: CSSValidator Version: CSS Validator Platform: All OS/Version: All Status: NEW Severity: major Priority: P2 Component: Parser AssignedTo: dave.null@w3.org ReportedBy: hannes+w3cbugs@erven.at QAContact: www-validator-cvs@w3.org Created attachment 1190 --> https://www.w3.org/Bugs/Public/attachment.cgi?id=1190 Suggested patch When specifying lengths, CSS allows zero lengths to be specified without a unit. This works fine for "0", but not for "0.0" . The specification clearly states that any numbers may contain a decimal point, so I think that should work. To reproduce, try this: * {margin: 0.0} The reason for this behaviour is what I think is an inappropriate use of the BigDecimal's "equals" method. As the javadoc states, the method returns only true when the value and scale for both arguments are identical. This means that 2.0 does not equal 2.00 or for the example above, 0 == BigDecimal.ZERO but 0.0 does not. I'll attach a patch with all those places corrected that I think need to be reworked. There are still some (few) lines where there are still == checks, but where I was not sure what behaviour was actually intended. -- Configure bugmail: https://www.w3.org/Bugs/Public/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug.
Received on Tuesday, 25 September 2012 17:57:28 UTC