一个变量m如何四舍五入保留两位?

Mr.W.H 2019-08-01 09:26:28
各位大神求助一下,谢谢!
...全文
99 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
双杯献酒 2019-08-03
  • 打赏
  • 举报
回复
(1)先乘以100
(2)四舍五入
(3)除以100
gouyanfen 2019-08-02
  • 打赏
  • 举报
回复
double round_double(double num,int digit_num) /*num需要四舍五入的数,digit_num保留小数位数*/ { double i=pow(10,digit_num); return floor((num*i)+0.5)/i; }
小·资 2019-08-02
  • 打赏
  • 举报
回复
你要怎么四舍五入,从最后一位算起?
赵4老师 2019-08-02
  • 打赏
  • 举报
回复
//Round(1.234,2) = 1.23
//Round(1.234,0) = 1.0
//Round(123.4,-1) = 120.0
double Round(double dVal, short iPlaces) {
    double dRetval;
    double dMod = 0.0000001;
    if (dVal<0.0) dMod=-0.0000001;
    dRetval=dVal;
    dRetval+=(5.0/pow(10.0,iPlaces+1.0));
    dRetval*=pow(10.0,iPlaces);
    dRetval=floor(dRetval+dMod);
    dRetval/=pow(10.0,iPlaces);
    return(dRetval);
}

double round(double dVal, short iPlaces) //iPlaces>=0
{
    unsigned char s[20];
    double dRetval;

    sprintf(s,"%.*lf",iPlaces,dVal);
    sscanf(s,"%lf",&dRetval);
    return (dRetval);
}
Vector_PX 2019-08-01
  • 打赏
  • 举报
回复
判断小数点后第三位是否大于4,等于4再判断第四位是否大于4……以此类推

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧