直接上代碼,很簡短
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。