java-round函數源碼

來源:互聯網
上載者:User

標籤:else   integer   return   ini   expr   abs   number   let   ati   

看不懂,改天研究?如果記得的話

public static long round(double a) {        long longBits = Double.doubleToRawLongBits(a);        long biasedExp = (longBits & DoubleConsts.EXP_BIT_MASK)                >> (DoubleConsts.SIGNIFICAND_WIDTH - 1);        long shift = (DoubleConsts.SIGNIFICAND_WIDTH - 2                + DoubleConsts.EXP_BIAS) - biasedExp;        if ((shift & -64) == 0) { // shift >= 0 && shift < 64            // a is a finite number such that pow(2,-64) <= ulp(a) < 1            long r = ((longBits & DoubleConsts.SIGNIF_BIT_MASK)                    | (DoubleConsts.SIGNIF_BIT_MASK + 1));            if (longBits < 0) {                r = -r;            }            // In the comments below each Java expression evaluates to the value            // the corresponding mathematical expression:            // (r) evaluates to a / ulp(a)            // (r >> shift) evaluates to floor(a * 2)            // ((r >> shift) + 1) evaluates to floor((a + 1/2) * 2)            // (((r >> shift) + 1) >> 1) evaluates to floor(a + 1/2)            return ((r >> shift) + 1) >> 1;        } else {            // a is either            // - a finite number with abs(a) < exp(2,DoubleConsts.SIGNIFICAND_WIDTH-64) < 1/2            // - a finite number with ulp(a) >= 1 and hence a is a mathematical integer            // - an infinity or NaN            return (long) a;        }    }

  

java-round函數源碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.