方法一:
#include<stdio.h>
int main()
{
double d1,d2,d3;
d1=-3.1415926;
d2=(int)(d1*10+0.5)*0.1;
printf("d1=%f,保留一位小数的结果为:%.1f\n",d1,d2);
d3=(int)(d1*1000+0.5)*0.001;
printf("d1=%f,保留三位小数的结果为:%.3f",d1,d3);
总结四舍五入保留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语言编写注意事项:
1、%运算符不能应用与float或double类型。
2、char类型转换为int型时, 无法判断它是signed还是unsigned.这样其结果有可能为负数, 因此转换时尽量指定signed和unsigned限制符。
3、++i与i++不同之处: ++i是先+1在使用, i++是先使用i在递加1。
4、三元运算符"?:" 第一个表达式的括号不是必须的,但是由于三元表达式的优先级非常低,我们还是将第一个表达式用()括起便于阅读和理解。
5、C语言中可以使用递归 (即函数调用自身函数), 其不节省储存器开销也不加快执行速度, 只是使程序紧凑便于理解。
c语言中如何进行四舍五入,求详细解释!!谢谢!
方法一:include<stdio.h> int main(){ double d1,d2,d3;d1=-3.1415926;d2=(int)(d1*10+0.5)*0.1;printf("d1=%f,保留一位小数的结果为:%.1f\\n",d1,d2);d3=(int)(d1*1000+0.5)*0.001;printf("d1=%f,保留三位小数的结果为:%.3f",d1,d3);总结四舍五入保留n...
c语言,四舍五入代码的原理是什么?
1.C语言里面,四舍五入的原理就是满5进1。用代码实现就是加上0.5,再截去小数。2.对于浮点数。float x = 3.456; \/\/保留到小数点后两位 float y =(int)((a * 100) + 0.5) \/ 100.0;\/\/output b = 3.46;对于整数。float x ;int y ;y=(int)((x+0.5)>(int)x?(int)x+...
c语言四舍五入怎么表示
要用C语言实现四舍五入,有一个很巧妙的方法,仅使用int i=(int)(a+0.5)即可。如果遇到有负数的情况,只需要将加号改为减号即可。C语言中四舍五入这样表示:inta=100.453627。printf("%.1f",a+0.05);\/\/四舍五入到十分位。printf("%.2f",a+0.005);\/\/四舍五入到百分位。以此类推...
c语言中怎么四舍五入
int main(void){ float a ;scanf(“%f”,&a);a=(int)(a*1000+0.5)\/1000.0;printf (“%0.3f”,a);return 0;}
c语言中,如何实现对一个整型数字进行四舍五入?
c语言:取整型变量x中的第p位开始的n个bit位,可以采用位运算的方法。先向左移位,丢弃前面不需要的位,再通过向后移位,丢弃后面不需要的位,最后再向左移位到原来的位置,就可以了。1\/\/num&(num-1)=(1111)&(1110)=(1110)2\/\/num&(num-1)=(1110)&(1101)=(1100)3\/\/num&(num-1)=(...
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语言怎么四舍五入
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语言如何四舍五入 跟 进一法除法 的 算法
include<stdio.h> int main(){int a,b;scanf("%d%d",&a,&b);printf("%d\/%d(四舍五入)=%d\\n",a,b,(int)((float)a\/b+0.5));printf("%d\/%d(进一法)=%d\\n",a,b,(int)(float)(a+b-1)\/b);return 0;}
c语言四舍五入的设计思路是怎样的?求详细解答。。。
else a=int(x);\/\/c语言中类型转换是用向0取整的 printf("%d\\n",a);} 如果还需要保留多少位小数,可以这样设计程序:以保留3位为例,x先乘1000,再按上面程序做判断,得到a值,再把a除以1000。举个例x=1.2359 y=x*1000; \/\/y=1235.9减去整数部分后 i=y-int(y);\/\/i=0.9; 这时可...
如何用C语言对实数四舍五入 ?? 谢谢各位了
思路是:如上,对小数点后第三位四舍五入,那么你给该数加上0.005,这样,如果第三位大于5,那么它会入上去一位,如果第三位小于5,那么它就不会进位。上面代码a=((int)(a*100+0.5))\/100.0;就是经行了这样的操作。将a乘100,变为134.6,然后加0.5,由于小数为6,那么加5后进位,...