Hello,
I'm working on rounding errors when using DecimalFormat, and have seen a difference from RI. I think this is a RI bug: When using, for example, System.out.printf("%.6f", new BigDecimal("0.12345678"));, no rounding will be performed, and 0.12345678 will be displayed on RI. However, on Harmony, 0.123457 will be print. I see no reason for not rounding when using BigDecimal, so I think we should keep this behaviour. Current unit tests only use integral BigDecimal, so I will add tests after answer to my question. I have another problem with BigDecimal : BigDecimal does not seem to keep trace of negative or positive zero. So System.out.printf("%f", new BigDecimal("-0.0")); will print 0.0, both on RI and Harmony. But, if we round BigDecimal in printf, do you think the result of System.out.printf("%.6f", "-0.00000012345"); should be 0.000000 or -0.000000 ?

Reply via email to