c语言float类型输出

#include<stdio.h>
int main(){

float sum,temp;
printf("Input your number\n");
scanf("%f",&sum);
printf("%f\n",sum);
return 0;

}
//为什么我输入的是37.1但是输出的结果却是37.099998应该怎么改

可以改成printf("%.1f\n",sum);

结果见下图:

拓展资料

float是C语言中的一个数据类型的关键字,表示单精度浮点型(双精度浮点型为double)。定义格式为:float a // a表示一个浮点型的变量。

C语言规定浮点型在内存占用4个字节,精度为7位,取值范围为:3.4*10^-38 ~3.4*10^38。

浮点型运算可能有误差。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-12
#include<stdio.h>
int  main(){
float sum,temp;
printf("Input your number\n");
scanf("%f",&sum);
printf("%.2f\n",sum);//因为计算机存储浮点数是采用二进制科学计数法来存储的,绝大部分小数不能完全转换成二进制,因此,浮点型数据在计算机中就是个近似数!当不约束小数点后的位数时,看到的会与我们输入的数据有差异,改善办法,一、用double,二、输出时控制小数点后的位数
return 0;
}

本回答被提问者采纳
第2个回答  2014-08-12
应该是float中的存储的数值转为二进制码时导致的缘故,如果只是输出,那么可以将%f改为%.1f(输出只输出小数点后一位.)
第3个回答  2014-08-12
printf("%0.1f\n",sum),这样就可以了

c语言float类型精确输出到多少位
float类型默认保留小数点后6位,若是要输出一位或者其他位数,可以按照以下形式进行输出:printf("%.(这里输入要输出的位数)f",x);如输出一位:printf("%.1f",x);

c语言中double、 float怎么输出?
1、双精度浮点型数据用%lf输出。因为double是8个字节的,float是4个字节的,%f 的格式就是4个字节的,而 %lf 就是8个字节的。 例如:printf("%lf\\n",x);2、short 占用内存空间2个字节,短整型数据用%d输出 例如:printf("%d\\n",a);例如:include <stdio.h> int main(){double x;sh...

c语言中double、 float怎么输出?
1.双精度浮点型数据用%lf输出。因为double是8个字节的,float是4个字节的,%f 的格式就是4个字节的,而 %lf 就是8个字节的。 例如:printf("%lf\\n",x);2.short 占用内存空间2个字节,短整型数据用%d输出 例如:printf("%d\\n",a);例:include <stdio.h> int main(){double x;short...

c语言float类型输出
可以改成printf("%.1f\\n",sum);结果见下图:

c语言float怎么输出小数?
1、打开C-Free,新建文件。2、输入以下内容:(以除法为例)include <stdio.h> main(){ float a,b,c;printf("请输入被除数:");scanf("%f",&a);printf("\\n请输入除数:");scanf("%f",&b);c=a\/b;printf("\\n%f÷%f=%f\\n",a,b,c);} 3、按F5运行,得到结果。4、float a,b,...

C语言里面float数据用printf(“%d”)输出的问题
C语言里面float数据用printf(“%d”)输出是0,是float数据使用错误造成的,解决方法如下:1、首先在电脑中打开C-Free 5编译器(界面) -> 文件 -> 新建(Ctrl+N)。2、然后输入下图所示代码。3、编译成功后的截图。如果编译失败,请检查语法或者编译器是否有问题。4、程序运行截图(开始和结束)。

float在c语言中的用法
float在c语言中的用法主要在声明和初始化、在计算中使用float、将其他类型转换为float、在输出中使用float等方面。1、声明和初始化:float myFloat=3.14。这里,我们声明了一个名为myFloat的float类型变量,并将其初始化为3.14。2、在计算中使用float:cfloat a=5.0;float b=2.5;float c=a+b...

c语言中float类型的数值是怎么表示的?
我么解释下为什么是这个值:1、f 代表b应以“小数”的格式输出。2、3”在小数输出中表示“最少输出的字符数为3(少于此数,在前加空格,多了原样输出”。3、“. 2”在小数的输出中则表示“小数点后输出的最多字符数,少了加0,多则四五入”。以上如果对你有帮助,请采纳下,谢谢。

C语言float类型储存和printf输出问题
原因就是,你使用了lf输出,其实是将float x转换为一个double输出了。相当于 double y = x;,然后输出y,这样后面的数值其实是因为一个4位浮点数给8位浮点数赋值的时候,将x的真实存储以double的精度显示出来了。具体的说,这涉及float的二进制保存方式,如果你有兴趣,可以看看基础语法书上关于float...

C语言。float类型输出后为什么会这样?
float类型输出 用%f即printf("%d\\t%d\\n",c,d);中,%d改为%fprintf("%f\\t%f\\n",c,d);

相似回答