double d1=2.275,我想四舍五入两位小数,得到d1=2.28,怎么办 double d1=2.275,我想四舍五入两位小数,得到d1=2.28,怎么办 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 若精确到小数点一位,则(int)(XX*10+0.5)若精确到小数点二位,则(int)(XX* 100 + 0.5)依次类推 d1 = ((int)((d1+0.005)*100))/100.0 zeroweb(低手低手低低手) 兄,我也这样试过,但不行,d1=2.27 再检查一下,2.275+0.005 = 2.2802.280*100 = 228.0(int)228.0 = 228228/100.0 = 2.280000最后在输出时限制一下格式肯定应该可以的呀! double d1=2.275;d1 = ((int)((d1+0.005)*100))/100.0; dl = ((int)((((int)(dl*1000)/1000.0)+0.006)*100))/100.0; d1 = ((int)((d1+0.005)*100))/100; (d1+0.005)*100 得到的其实是 227.99999......用int截断后得到的还是227,建议:d1 = ((int)((d1+0.0051)*100))/100.0 再送你一个四舍五入的函数double Round( double db, int n) //n表示保留几位小数{ char szParm[10]; char szdb[40]; sprintf(szParm,"%%20.%df",n); sprintf(szdb,szParm,db); return atof(szdb);} 终于升三个小三角了 嘎嘎 应用程序保存,复制,文档时会发出什么消息 找一个VS2010的控件插件 关于对齐函数不理解(操作PE文件) 帮我看看 最后45分了,什么样的容器可以实现这样的功能? 怎么打开网卡属性界面 求sourceinsight3.50.0042的注册码 如何在一个mfc工程里加入自己的.h和.cpp文件? 谁有MFC类库的树形图?(A4一张) SQL字段长度问题,急!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 有关ADO的Provider必须用Oracle 8.0.5的专用数据接口(Oracle Provider for OLE DB)的问题,急,在线等!高分!
若精确到小数点二位,则(int)(XX* 100 + 0.5)
依次类推
2.275+0.005 = 2.280
2.280*100 = 228.0
(int)228.0 = 228
228/100.0 = 2.280000
最后在输出时限制一下格式肯定应该可以的呀!
d1 = ((int)((d1+0.005)*100))/100.0;
用int截断后得到的还是227,建议:
d1 = ((int)((d1+0.0051)*100))/100.0
double Round( double db, int n) //n表示保留几位小数
{
char szParm[10];
char szdb[40];
sprintf(szParm,"%%20.%df",n);
sprintf(szdb,szParm,db);
return atof(szdb);
}