double d1=2.275,我想四舍五入两位小数,得到d1=2.28,怎么办 double d1=2.275,我想四舍五入两位小数,得到d1=2.28,怎么办 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 dl = (double)((int)((dl + 0.05) * 100) / 100); dl = (double)((int)((dl + 0.005) * 100) / 100); dl = (double)((int)((dl + 0.005) * 100) / 100.0); #include "math.h"double d1,d2;d1=2.275;d2 = (floor((d1 + 0.01)*100 ))/100; (d1+0.005)*100 得到的其实是 227.99999......用int截断后得到的还是227,建议:d1 = ((int)((d1+0.0051)*100))/100.0 double d1=2.275;CString str;str.Format( "%5.2f", d1 );d1 = atof( str ); //结果就是2.28 若精确到小数点一位,则(int)(XX*10+0.5)若精确到小数点二位,则(int)(XX* 100 + 0.5)依次类推......然后将所得数分别/10或/100 ....... RoundOff(float data, int round)//data:要保留的数据,round:要保留的位数{ int i = 0; int roundoff = 1; for(i=0; i<round; i++) { roundoff *= 10; } data *= roundoff; if(data < 0) { data -= 0.5; } else { data += 0.5; } data = (float)(int)data; return((float)data / roundoff);} dl = (double)((int)(dl*100+0.5) / 100.0); i agree with sans(sans) 你是不是在做数据库项目是碰到这个问题的?用sans(sans)的方法吧。 dl = (double)((int)((dl + 0.005) * 100) / 100.0);我经常用,没错的 真是谁new ,谁delete ? 我感觉csdn也没落了 請問如何讓MFC程式只能開啟一個實體而已 请问如何在CMainFrame 中响应在某个View 中的动态建立的CTreeCtrl 控件消息 CDatabase类使用出错。 谁会VC图象处理的,帮我作毕设吧 关于语音通信 怎么样我才能比较知道一个CString中含有“.fsg“的字符串?谢谢诸位!! 谁有TAPI的任何资料都欢迎. 很菜的问题:如何区分vs6.0是中文版还是英文版? 请教:如何做出自己的可视化控件 位图去处背景颜色显示?
d1=2.275;
d2 = (floor((d1 + 0.01)*100 ))/100;
用int截断后得到的还是227,建议:
d1 = ((int)((d1+0.0051)*100))/100.0
CString str;
str.Format( "%5.2f", d1 );
d1 = atof( str ); //结果就是2.28
若精确到小数点二位,则(int)(XX* 100 + 0.5)
依次类推......然后将所得数分别/10或/100 .......
{
int i = 0;
int roundoff = 1;
for(i=0; i<round; i++)
{
roundoff *= 10;
}
data *= roundoff; if(data < 0)
{
data -= 0.5;
}
else
{
data += 0.5;
} data = (float)(int)data;
return((float)data / roundoff);
}
我经常用,没错的