c语言怎样保留两位小数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言怎样保留两位小数?相关的知识,希望对你有一定的参考价值。
C语言怎么保留两位小数,如果不定义的话,那么就会默认不是两位小数,那么需要输出内容保留小数,实际上可以对浮点型进行设置的。
1、首先打开IDE,接着保存main.c文件。
2、这个时候把内容输出,设置浮点型。也就是%f。
3、但是输出的时候默认有多位小数。
4、这时可以设置%.2f,也就是两位数,因为我们写了2。
5、这个时候执行代码的时候就会看到只有两位小数了。
参考技术A 在c语言中一个数保留2位小数可以通过精度限定符来完成,精度限定符有一个点号后跟一个整数组成。示例:
#include <stdio.h>
int main()
dobule a = 1.23456;
printf("%.2f\n", a);
return 0;
/*
输出:1.23
*/
注意:这里保留小数是四舍五入的,即如果保留的小数位数的后一位大于等于5,则进1,否则舍去,如示例中的a的值改为1.23556,则会输出1.24。 参考技术B float(j*100/k)这里就是强制转换为单精度
单精度和整型,两个都要转换为双精度才能够进行算术运算的
还有y的类型如果是int
那么就是双精度强制赋值给整型y,
C语言四舍五入保留两位小数
#includemain()
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);
参考技术A 应该是精度问题。
因你使用的是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
)
);
参考技术B scanf("%d",&a);改为:
scanf("%lf",&a);
printf("结果是:%2f\n",a);改为:
printf("结果是:%.2f\n",a);
%2f
是按2位输出,%.2f是按小数部分保留两位输出,一失足成千古恨啊。小心呀 参考技术C 这样相当于取整,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语言怎样保留两位小数?的主要内容,如果未能解决你的问题,请参考以下文章