[ 
http://issues.apache.org/jira/browse/JDO-206?page=comments#action_12360212 ] 

Erik Bengtson commented on JDO-206:
-----------------------------------

one more test, shows that the double converted back to float prints the 
expected value. More, it seems to be a "normal" floating point numbers 
behaviour..  In conclusion, I think it's a bug in derby that should not convert 
that value to double when storing.

See

http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
http://stevehollasch.com/cgindex/coding/ieeefloat.html



public class Test
{

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        float f=(float)-234.23;
        double d=(double)f;
        float f1=(float)d;
        System.out.println(f); //prints -234.23
        System.out.println(d); // -234.22999572753906
        System.out.println(f1); // -234.23
    }

}


> JDOQL test NotEquals comparing floating point numbers
> -----------------------------------------------------
>
>          Key: JDO-206
>          URL: http://issues.apache.org/jira/browse/JDO-206
>      Project: JDO
>         Type: Bug
>   Components: tck20
>     Reporter: Andy Jefferson
>     Assignee: Erik Bengtson

>
> The current TCK test (carried over from JDO 1.0) for NotEquals, uses != 
> operator on floating point numbers. This is not a good practice, and is 
> unreliable. Its probably the case that the Equals test uses == on the same 
> content, which also is not a good idea (as noted in the latest spec). These 
> tests need reviewing and a reliable alternate strategy adopting

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to