c语言中浮点数四舍五入 。 保留一个浮点数小数点后的6位,第3位要四舍五入。如 1.1234.567到1234.570000

如题所述

意思是第3位之后的数都舍弃吗?

可以这样,

#include <stdio.h>
int main()
{
double d1 = 1234.567;
double d2 = d1 - (int)d1; // 求出小数部分
int i = d2 * 1000; // 取出小数后3位
if (i%10 >=5 )
{
i -= i%10;
i += 10; // 四舍五入
}
d1 = (int)d1 + (double)i / 1000;
printf("d1 = %lf \n", d1);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-20
利用整数取整后自动截断小数的办法可以实现保留小数,比如:12344.567要保留两位小数并在第3位上进行四舍五入:double x=1234.567; int xx; x*=100; x+=0.5; xx=(int)x; x=(double)xx/100;本回答被提问者采纳
相似回答