Following test[1] fails in Harmony. But passes in RI.

[1] test:
                float r=6.0214271E18f;
                String s=Float.toString(r);
                assertEquals("6.0214271E18",s);
Harmony prints: 6.021427E18  (note '1' is missing from the converted string)

When i looked into the implementation of harmony, i come to know its a
limitation to the algorithm implemented in Harmony (Printing
Floating-Point Numbers Quickly and Accurately, Robert G. Burger, and
R. Kent Dybvig, Programming Language Design and Implementation (PLDI)
1996, pp.108-116)

https://svn.apache.org/repos/asf/harmony/enhanced/java/branches/java6/classlib/modules/luni/src/main/native/luni/shared/dblparse.c

function: 
java_org_apache_harmony_luni_util_NumberConverter_bigIntDigitGeneratorInstImpl

I am clue-less to find the flaw in the implementation. Any comments
from experts of this area?

I will raise a JIRA for this issue.

Thanks and Regards,
Mohan

Reply via email to