直接上代码,很简短
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。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/10408.html