#include <stdio.h>
#include <stdlib.h>
int main()
{
double a;
a=1.11111111111111224;
printf("%.16lf",a);
system("pause");
return 0;
}
为何输出为1.1111111111111123
四不是应该舍吗?
C语言四舍五入的问题???
没能正确地做四舍五入是因为有效数字个数超出 double 允许范围,尾部数据不精确了。有效数字少一点时,我的编译器(VC++ 6.0) 好像能做四舍五入。例如:include<stdio.h> include<stdlib.h> main(){ double a,b,c,d;a=1.12345;b=-1.12345;c=1.12344;d=-1.12344;printf("a=%.4lf ...
c语言的四舍五入问题
C语言中一般不四舍五入,而是只考虑整数部分,如 int i,j;i=7\/5;(即1.4)j=9\/6;(即1.5)printf("%d %d",i,j);输出均为1
c语言的四舍五入问题
if(x>=0.5){b=a+1;printf("四舍五入后的结果为%d",b);} else{b=a-1;printf("四舍五入后的结果为%d",b);}} b没有正确赋值。
C语言的四舍五入问题
C\/C++中的“四舍五入”遵守的规则是“<5舍,否则入“。
c语言中的四舍五入怎么做?
incloud <stdio> int main(void){ float a ;scanf(“%f”,&a);a=(int)(a*1000+0.5)\/1000.0;printf (“%0.3f”,a);return 0;}
C语言四舍五入的问题
如果你想四舍五入,比方说,想要3.14159,四舍五入取小数点后3位,你可以将3.14159*1000,得到3141.59,然后再加上0.5,得到3142.09,然后再取整(强制转化为INT型),得到3142,然后再除以1000,就得到你想要的小数点后3位的四舍五入了,就是3.142.如果不想要四舍五入,直接截取,就不要加...
c语言中如何进行四舍五入,求详细解释!!谢谢!
总结四舍五入保留n为小数 (int)(x*10的n次方+0.5)*10的负n次方;其次这个方法对负数无效;如果非要用可以先取正数部分算,最后加上负号 } 方法二:使用round()函数。include"stdio.h"include"math.h"void main(){ float x;scanf("%f",&x);int y = round(x);printf("%d",y);} ...
c语言怎么四舍五入
C语言中四舍五入这样表示:inta=100.453627。printf("%.1f",a+0.05);\/\/四舍五入到十分位。printf("%.2f",a+0.005);\/\/四舍五入到百分位。以此类推,对于十进制小数.5类型数(如0.5,11.5,18.5),即小数部分可以以2的负一次方来表示的数,这时计算机是可以“完美”的储存这个十...
C语言中关于四舍五入的问题。
如果把s=((int)(s*10000+0.5))\/10000.0 去掉 再printf("%.4f",s);输入3.1415926 那么最后结果 是 3.1415 不会是3.1416 cpu没有四舍五入的功能 只能靠编程实现 s=((int)(s*10000+0.5))\/10000.0 就是 用啦对小数点后第4位实现四舍五入的 你可以验证一下 ...
C语言中的四舍五入问题
C语言规定 f若f前没有标注任何数字,编译系统输出默认小数点后有6位数 像%.4f,输出小数点后是4位数字 像%.8f,输出小数点后是8位数字 它之所有扩大1000倍,就是想要小数点后的两位数 四舍五入就像小学那种啊 大于5就往前移动1,本来那个归0 题目已经很清楚了 x[10]={15.6,19.9,16.7,15...