码迷,mamicode.com
首页 > 其他好文 > 详细

实现浮点数的四舍五入RoundOff,保留几位小数

时间:2017-06-20 20:20:32      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:article   print   split   keyword   key   number   4.6   ade   string   

直接上代码,非常简短

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。

实现浮点数的四舍五入RoundOff,保留几位小数

标签:article   print   split   keyword   key   number   4.6   ade   string   

原文地址:http://www.cnblogs.com/yfceshi/p/7055922.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!