C语言中显示小数部分

#include<stdio.h>
int main()
{
float a,b,c;
a=7.0;
b=4.0;
c=a/b;
printf("c is %d\n",c);

}

弱弱的问下。。c为什么不显示1.75 而是显示的是0?

1、首先在电脑中打开vc6.0,新建一个项目,添加stdio.h头文件。

2、然后添加math.h头文件,添加main函数

3、接着定义double类型变量 number。

4、接着定义down、up变量,使用floor向下取整。

5、然后使用ceil向上取整,最后使用printf打印结果。

6、最后运行程序,看看结果,如下图所示,就完成了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-25
printf("c is %d\n", c); // %d表示以整数输出,如果对应的变量是浮点数,会自动把小数部分截掉
如要输出小数应该改为
printf("c is %f\n", c); //单精度的
或者
printf("c is %lf\n", c ); //双精度的追问

再弱弱地问下。。啥叫单精度?双精度?

追答

单精度和双精度数值类型最早出现在C语言中(比较通用的语言里面),在C语言中单精度类型称为浮点类型(Float),顾名思义是通过浮动小数点来实现数据的存储。这两个数据类型最早是为了科学计算而产生的,他能够给科学计算提供足够高的精度来存储对于精度要求比较高的数值。
这个要解释起来很长,下面的链接是百度百科里你解释你可以了解一下
http://baike.baidu.com/view/1007029.htm

你上面问的其他人的int double float这三个类型分别是整数, 这种类型的变量存的都是整数,也就是不带小数点的数, double 就是双精度的浮点数, float就是单精度的浮点数,精度不一样,能表示的数值的范围就不一样,双精度能表示的数比单精度的大很多

本回答被提问者和网友采纳
第2个回答  2012-07-24
首先一点
把printf("c is %d\n",c);改成
printf("c is %f\n",c);就可以达到输出1.75
下面开始说为什么输出的是0的问题。
因为整型和浮点型在内存中存储的字节位不同,如果把浮点型数值按整型格式化输出的话,会有“缺位”的效果。就如上例,实际按%d格式输出的是0.
按照楼主的题目是想得到一个浮点型的小数部分了,可以这样修改

c=a/b
c=c-(int)c;//小数部分,(int)c意思是去C的整数部分
希望对楼主有帮助追问

哦 神奇。。那个 。问下。。ctrl+f5后如何不显示【Press any key to continue】。。。?

追答

你说反了吧!!ctrl+f5才会出现这个。
一个是只调试模式,一个是运行模式。调试模式只是检测代码是否可以运行,遇到错误的地方就会停下来,如果没有错误就直接执行完毕后关闭窗口。所以一般为了看到调试的最终结果都会在代码末尾加上句 getchar();你可以试试,加上后只按F5也可以出现结果的
ctrl+f5 这个就是运行模式了,它会把该程序的结果反映在现实窗口上。

第3个回答  2020-03-12
#include <stdio.h>
int main()
{
float x,y,h;
char z;
scanf("%f",&x);
if(x>0) z='+',y=x;
else z='-',y=-x;
printf("sign:%c\n",z);
printf("integral part:%d\n",(int)y);
h=y-(int)y;
printf("decimal fraction part:%.3f\n",h);
return 0;
}

h=y-(int)y;就是这个
第4个回答  2012-07-24
你把
printf("c is %d\n",c);

改为
printf("c is %f\n",c);追问

huo。。。厉害。这么简单。。初学。。只是照葫芦画瓢。。是规定的%f即可显示小数部分??还有那个int double float 都是啥啊。。分别讲下都有啥特定功能?

还有 书上有这么一句话【用单目逻辑非运算符“!”把一个变量的数值转化为响应的逻辑真值或者假值】。。这话啥意思啊?能否举例说明?

还有【变量的储存类别】这部分有什么用么?什么auto static变量。。有什么用?能否说的简单些。。有例子最好?

相似回答