實現浮點數的四捨五入RoundOff,保留幾位小數

直接上代碼,很簡短

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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章