c语言四舍五入是怎样的?

作者&投稿:胥禄 (若有异议请与网页底部的电邮联系)
c语言编程~如何四舍五入~

# incloud
int main(void)
{
float a ;
scanf(“%f”,&a);
a=(int)(a*1000+0.5)/1000.0;
printf (“%0.3f”,a);
return 0;
}

扩展资料:
其他方法实现四舍五入:
int myround(double indata,int precision,double * outdata){
long pre = 1,i;
for(i = 0; i <precision; i ++)pre = pre * 10;
if(cy_FloatCompare(indata,0.00)> 0)
* outdata =(int)((indata * pre)+0.5)/100.00;
else
* outdata =(int)((indata * pre)-0.5)/100.00;
return 0;
}
// cy_FloatCompare是浮点数与0比较的函数,假设它存在。返回值与strcmp相同。

结合例子说明jgr=(int)(((int)(jgread*100+0.5)/100.0)*100);
将a=1.364保留两位小数,第三位四舍五入。
#include "stdio.h"
main()
{
float a=1.346;
a=((int)(a*100+0.5))/100.0;
printf("%f",a);
}

思路是:如上,对小数点后第三位四舍五入,那么你给该数加上0.005,这样,如果第三位大于5,那么它会入上去一位,如果第三位小于5,那么它就不会进位。上面代码a=((int)(a*100+0.5))/100.0;就是经行了这样的操作。将a乘100,变为134.6,然后加0.5,由于小数为6,那么加5后进位,实现了五入。然后取整将其余小数舍去,在除以100.0,还原为原来大小。

# incloud <stdio>

int main(void)

{

float a ;

scanf(“%f”,&a);

a=(int)(a*1000+0.5)/1000.0;

printf (“%0.3f”,a);

return 0;

}

扩展资料

其他方法实现四舍五入:

int myround(double indata,int precision,double * outdata)

long pre = 1,i;

for(i = 0; i <precision; i ++)pre = pre * 10;

if(cy_FloatCompare(indata,0.00)> 0)

* outdata =(int)((indata * pre)+0.5)/100.00;

else  

* outdata =(int)((indata * pre)-0.5)/100.00;

return 0;


// cy_FloatCompare是浮点数与0比较的函数,假设它存在。返回值与strcmp相同。



C语言没有四舍五入,只有全舍不入,即浮点型转整型时直接去掉小数位,保留整数位。

整数的除法(必须除数和被除数都是整数,否则认为是浮点数的除法)的确是只舍不进的,但是对于浮点数的除法,跟数学中的四舍五入一样
例如对于下面的程序:
#include<stdio.h>
void main()
{
double a = 10.55555555;
printf("%lf\n", a);
printf("%lf\n", 2.0/3.0);
}
运行后结果是:
10.555556
0.666667
(系统默认的小数输出个数是6个)

c语言在整形变量的运算中是只舍不入的,例如12/5,得2余2,但结果是2,不计余数,再如
47/7,得6余5,但结果还是6
浮点型变量运算可以根据你的需要保留相应的位数
例如float a=5,b=2,c;
c=a/b;
若输出的话,默认输出2.500000,当然你也可以根据自己的需要保留相应的位数,如printf("%.3f",c);即输出2.500(保留3位)

全舍不入

需要实现四舍五入的时候就要使用double或者float类型的数进行运算然后if判断

http://zhidao.baidu.com/question/68502540.html刚好有个类似的问题


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语言中的四舍五入是怎么回事
是指整型变量附值一个浮点数出现的四舍五入?如果一个整型变量附值浮点数,则做截尾处理,比如:int x;x=1.9;那么x的值为1;如果是:x=-1.9;则x的值是-1

c语言四舍五入怎么表示
要用C语言实现四舍五入,有一个很巧妙的方法,仅使用int i=(int)(a+0.5)即可。如果遇到有负数的情况,只需要将加号改为减号即可。C语言中四舍五入这样表示:inta=100.453627。printf("%.1f",a+0.05);\/\/四舍五入到十分位。printf("%.2f",a+0.005);\/\/四舍五入到百分位。以此类推...

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语言中,四舍五入函数扮演着将浮点数精确到整数的重要角色。这个函数被称为round(x),它特别适用于处理需要对小数部分进行舍入操作的情况。当你调用round(x)时,其参数x必须是double类型的数值。这个函数的核心作用是根据四舍五入的规则,决定小数点后的部分是向上还是向下取整。例如,当你输入round...

四舍五入c语言
四舍五入”,只要通过输出格式符控制即可。例如:double pi=3.1415926;printf("%.4lf\\n",pi);可得输出为3.1416。printf("%.2lf\\n",pi);可得输出为3.14。如果是要把变量本身的值四舍五入到4位小数,则可以这样处理:double pi=3.1415926;pi=((int)(pi*10000+0.5))\/10000.0;

C语言的四舍五入问题
C\/C++中的“四舍五入”遵守的规则是“<5舍,否则入“。

C语言中的四舍五入问题
像%.8f,输出小数点后是8位数字 它之所有扩大1000倍,就是想要小数点后的两位数 四舍五入就像小学那种啊 大于5就往前移动1,本来那个归0 题目已经很清楚了 x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0} 里面所有数相加,除以个数 本来应该是 15.03 但输出要...

c语言中,如何实现对一个整型数字进行四舍五入?
c语言:取整型变量x中的第p位开始的n个bit位,可以采用位运算的方法。先向左移位,丢弃前面不需要的位,再通过向后移位,丢弃后面不需要的位,最后再向左移位到原来的位置,就可以了。1\/\/num&(num-1)=(1111)&(1110)=(1110)2\/\/num&(num-1)=(1110)&(1101)=(1100)3\/\/num&(num-1)=(...

四舍五入是什么算法?
4、进行舍入操作:最后,使用相应的编程语言或函数进行舍入操作。在Java中可以使用Math类中的round方法进行四舍五入操作。5、输出结果:将四舍五入后的结果输出到控制台或输出流中。可以使用语句Systemoutprintln(输出结果为+ result)来输出舍入后的结果。四舍入五的用法 1、确定要舍入的位数:根据...

安义县13154021345: c语言中的四舍五入怎么做? -
慎狱依帕: 利用取整运算的截断特点实现. 比如:int a=0.75;取整后赋值给a的是0,小数点后面的被截断了. 如果要做整数的四舍五入,那么可以:a=(int)(0.75+0.5);取整后得到的与数学中四舍五入的结果一致,都是1; 如果要进行小数点后面的四舍五入,可以这样计算: 要保留小数点后面两位的小数,即在小数点后面两位上做四舍五入,0.756 float a=0.756,b; int x; b=a*100; b+=0.5; x=b; b=x/100; 运算是这样的:先将0.756乘以100,得到75.6,然后利用取值运算的截断做四舍五入,75.6+0.5=76.1取整后等于76,再除以100,得到结果:0.76

安义县13154021345: 如何用C语言对实数四舍五入 ?? 谢谢各位了 -
慎狱依帕: 比如对小数点后第一位四舍五入,最简单的方法是(int)(实数 + O.5). 第二位的话(实数*10 + O.5)/10.0. 但是负数要特别考虑.

安义县13154021345: c语言四舍五入的设计思路是怎样的?求详细解答.... -
慎狱依帕: #include<stdio.h> void main() {int a;float x,i;scanf("%f",&x);i=x-int(x);//x减去整数部分if(i>=0.5) a=int(x)+1;//x大于0,x小于0的情况自己写咯else a=int(x);//c语言中类型转换是用向0取整的printf("%d\n",a); }如果还需要保留多少位小数,...

安义县13154021345: 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; }

安义县13154021345: c语言整数怎么四舍五入 -
慎狱依帕: 将整数知+5,再整除10,再乘道以10,就可专以了 参考代码: #include<stdio.h>int main() { 属int n=0;scanf("%d", &n );printf( "%d\n", (n+5)/10*10 );return 0; }

安义县13154021345: C语言有没有数据的四舍五入?什么情况下会用到四舍五入?数据类型转换? -
慎狱依帕:[答案] 有四舍五入的情况,在你想要保留几位小数的时候,多余的紧接着的一位要四舍五入 不过C里面没有提供四舍五入的函数,不过你可以这样 a = (int)(a*100 + 0.5)/100 这只是一个小技巧,对a的第三位进行四舍五入

安义县13154021345: c语言四舍五入 -
慎狱依帕: #includemain() { double a; printf("清输入一个小数 "); scanf("%lf",&a); a=(int)(a*100+0.5); a=a/100; printf("输出的四舍五入结果是 %.2f",a); } 这样就对了,输入格式有错

安义县13154021345: c语言中的四舍五入是怎么回事 -
慎狱依帕: 是指整型变量附值一个浮点数出现的四舍五入? 如果一个整型变量附值浮点数,则做截尾处理, 比如: int x; x=1.9; 那么x的值为1; 如果是: x=-1.9; 则x的值是-1

安义县13154021345: c语言中有没有四舍五入的函数? -
慎狱依帕: double ceil(double x)返回不小于x的最小整数值(然后转换为double型). double floor(double x)返回不大于x的最大整数值. double round(double x)返回x的四舍五入整数值 int abs(int) 返回整数绝对值 double fabs(double) 返回浮点数绝对值

安义县13154021345: 用C语言编程如何实现保留几位小数并对最后一位四舍五入呀?谢谢了 -
慎狱依帕: 很简单,假如你有一个float型变量a,其值为1.23456,而你只想保留三位小数,也就是希望得到1.235,只需要令: a = (int)(1000.0 * a + 0.5) / 1000.0 即可.如果要保留四位小数,就把1000都换成10000,依次类推.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网