C语言中怎样控制输出小数按四舍五入输出7位小数?

问题描述:

C语言中怎样控制输出小数按四舍五入输出7位小数?

double p = 3.14159265;
long x = 0;
p = p*10000000 + 0.5;
x = (long)p;
p = x/1000000;
printf("%.7lf",p);
这样,你把这个小数,乘以10的7次方,然后对结果取整(也就是强制转化为整型),然后对这个取整后的整型 加上 0.5 ,再除以10的7次方,就搞定了.
如果你想四舍五入,比方说,想要3.14159,四舍五入取小数点后3位,
你可以将3.14159*1000,得到3141.59,然后再加上0.5,得到3142.09,然后再取整(强制转化为INT型),得到3142,然后再除以1000,就得到你想要的小数点后3位的四舍五入了,就是3.142.
如果不想要四舍五入,直接截取,就不要加上0.5