C语言四舍五入保留两位小数
发布网友
发布时间:2022-04-22 14:12
我来回答
共4个回答
热心网友
时间:2022-06-08 13:55
#include
main()
{
double
a;
printf("请输入一个四位小数:\n");
scanf("%lf",&a);//双精度应该是的%lf
a*=100;//
扩大100倍,举个例子:a=123.4567,a=a*100,则a=12345.67
a+=0.5;//加0.5进行四舍五入a=12346.17
a=(int)a;//这个地方是想保留两位小数,后边的舍去,所以进行强制类型转换.
a/=100;//上面扩大100倍,现在要对其缩小100
printf("结果是:%f\n",a);//这样就行了,或者printf("结果是:%.2f\n",a);
}
热心网友
时间:2022-06-08 13:55
scanf("%d",&a);改为:
scanf("%lf",&a);
printf("结果是:%2f\n",a);改为:
printf("结果是:%.2f\n",a);
%2f
是按2位输出,%.2f是按小数部分保留两位输出,一失足成千古恨啊。小心呀
热心网友
时间:2022-06-08 13:56
应该是精度问题。
因你使用的是float变量,你可以用printf显示a*100的结果是155.499995而不是155.50000
你可以全改成double型
#include
<stdio.h>
double
fun
(
double
h
)
{
return
(long)(
h
*
100
+0.5
)/
100.0;
}
main(
)
{
double
a;
printf
("enter
a:
");
scanf
(
"%lf",
&a
);
printf
(
"the
original
data
is
:
"
);
printf
(
"%lf
%lf\n\n",
a,
a*100
);
printf
(
"the
result
:
%lf\n",
fun
(
a
)
);
}
热心网友
时间:2022-06-08 13:56
这样相当于取整,a*=1000;a+=5;a/=10;a/=100.0;这样就可以了!
设a为1.256,由a*=1000;得a=1256;由a+=5;得a=1231;由a/=10;得a=123;由a/=100.0;得a=1.230000;后面的不变。
C语言四舍五入保留两位小数
double a;printf("请输入一个四位小数:\n");scanf("%lf",&a);//双精度应该是的%lf a*=100;// 扩大100倍,举个例子:a=123.4567,a=a*100,则a=12345.67 a+=0.5;//加0.5进行四舍五入a=12346.17 a=(int)a;//这个地方是想保留两位小数,后边的舍去,所以进行强制类型转换.a/...
c语言保留两位小数怎么保留
首先,利用printf函数的格式化功能。通过在输出语句中使用%.2f,可以确保浮点数在屏幕上显示为两位小数,如:float num = 3.14159; printf("%.2f", num);这将输出3.14。其次,可以借助round函数进行四舍五入。首先将浮点数乘以100,使用round函数进行处理,然后除以100以保留两位小数,如下所示:float...
计算机c语言中保留两位数时为什么要先乘以100再除以100
保留两位有效数字要看三位小数。加5是为了四舍五入。比如说原数为1.2345 【1】*1000再转化为长整型-->1234【2】+5再除以10-->1239/10-->123(看清楚没?把4舍去了,原若第三位小数大于等于5,加上5就能进位。这样实现四舍五入)【3】再转化为double,除以100,便得到了两位有效数字。
C语言四舍五入保留两位小数的程序怎么写?
double fun ( float h ){ return (long)( h * 100 + 0.5 )/ 100.0;}main( ){ float a;printf ("Enter a: "); scanf ( "%f", &a );printf ( "The original data is : " );printf ( "%f \n\n", a );printf ( "The result : %f\n", fun ( a ) )...
C语言将x四舍五入保留两位小数并输出的两种方法是否等同?
scanf("%d",&a);改为:scanf("%lf",&a);printf("结果是:%2f\n",a);改为:printf("结果是:%.2f\n",a);2f 是按2位输出,%.2f是按小数部分保留两位输出,一失足成千古恨啊。
用C语言怎么实现浮点数的四舍五入,保留两位小数点
C语言怎么实现浮点数的四舍五入,保留两位小数的设计过程为:定义浮点点数变量df,输入浮点数 浮点数df扩大100倍 浮点数df增加0.5 利用floor()函数得到最接近df数,但不大于df的整数(完成四舍五入)。不能用int强制转换,否则,数据超过int范围就会出现错误。浮点数df缩小100倍得到有两位小数的浮点数...
如何用c语言将一个实数内部精度四舍五入到小数点后第二位
include <stdio.h>int p10(int m);//求10的次方double rounding(double n,int w);//小数四舍五入,参数w:精确到第几数int main(){ int w; double n; while(1) { printf("请输入一个实数:"); scanf("%lf",&n); printf("请输入要精确到小数点后几位:"); ...
C语言编写程序,对一个double型数据进行四舍五入,要求保留两位有效小数...
例如double型的数据为a=5.1413,程序如下:incloud <stdio.h> main( ){ double a;printf("请输入一个double型数据:”);a= int (a*100+0.5)/100 ;printf("%lf",a)。} 这时候printf输出的结果将是5.14。
C语言。从键盘读入一个实数,对其进行四舍五入处理,要求精确到到小数点...
对12.345来说,先乘以1000,得到12345,赋值给整型,12345%10得到个位数,判断这个个位数若大于等于5则把12345加10-个位数,若小于5,则12345减去个位数,然后把最终的数先除以10,再除以100.0。
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;}