You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "ntysdd (JIRA)" <ji...@apache.org> on 2015/03/06 11:32:38 UTC

[jira] [Comment Edited] (MATH-1196) FastMath.round (like Math.round) returns surprising results for some arguments

    [ https://issues.apache.org/jira/browse/MATH-1196?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14350188#comment-14350188 ] 

ntysdd edited comment on MATH-1196 at 3/6/15 10:32 AM:
-------------------------------------------------------

Not so easy.
Still wrong.

{code:xml}
    public void test() {
        final double x = 4503599627370497.0; // x = Math.pow(2, 52) + 1;
        Assert.assertTrue(x == Math.rint(x));
        Assert.assertTrue(x == FastMath.round(x));
    }
{code}


was (Author: ntysdd):
Not so easy.
Still wrong.

    public void test() {
        final double x = 4503599627370497.0; // x = Math.pow(2, 52) + 1;
        Assert.assertTrue(x == Math.rint(x));
        Assert.assertTrue(x == FastMath.round(x));
    }


> FastMath.round (like Math.round) returns surprising results for some arguments
> ------------------------------------------------------------------------------
>
>                 Key: MATH-1196
>                 URL: https://issues.apache.org/jira/browse/MATH-1196
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 3.4.1
>            Reporter: Phil Steitz
>
> The first assertion in the test case below succeeds, but the second fails
> {code}
>  /*
>      * http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6430675
>      */
>     @Test
>     public void testRoundDown() {
>         final double x = 0x1.fffffffffffffp-2;
>         Assert.assertTrue(x < 0.5d);
>         Assert.assertEquals(0, FastMath.round(x));
>     }
> {code}
> This is being tracked as a JDK (actually spec) bug here:
> http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6430675



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)