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

发布网友 发布时间:2022-04-21 23:39

我来回答

5个回答

热心网友 时间:2023-08-03 11:59

# 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相同。

热心网友 时间:2023-08-03 12:00

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

热心网友 时间:2023-08-03 12:00

整数的除法(必须除数和被除数都是整数,否则认为是浮点数的除法)的确是只舍不进的,但是对于浮点数的除法,跟数学中的四舍五入一样
例如对于下面的程序:
#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个)

热心网友 时间:2023-08-03 12:01

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位)

热心网友 时间:2023-08-03 12:02

全舍不入

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

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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com