Java實現浮點數的四舍五入,保留幾位小數

jfo9o736z 8年前發布 | 1K 次閱讀 Java

直接上代碼,很簡短

double myRound(double d,int n)
{
    d = d*pow(10,n);
    d += 0.5;
    d = (long)d;
    d = d/pow(10,n);
    return d;
}

上述代碼中的d是我們要進行四舍五入的浮點數,n是我們要保留的小數點后位數。
四舍五入,主要靠這兩行代碼實現

 d += 0.5; d = (long)d;

強制類型轉換,會直接舍去小數點后的數字,而先對d進行加0.5操作,則是為了四舍五入,比如4.1,加0.5后變為4.6,強轉,舍去小數部分,變為4;又如5.7,加0.5后變為6.2,強轉,舍去小數部分,變為6。

保留n位小數,主要靠

 d = d*pow(10,n);

 d = d/pow(10,n);

比如對,62.164保留2位小數,先乘10的二次方,為6216.4,四舍五入位6216,在除以10的二次方,為62.16。

 本文由用戶 jfo9o736z 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!