C语言中显示小数部分
#include<stdio.h>intmain(){floata,b,c;a=7.0;b=4.0;c=a/b;printf("cis%d\n",c);}弱弱的问下。。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? 展开
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? 展开
8个回答
展开全部
printf("c is %d\n", c); // %d表示以整数输出,如果对应的变量是浮点数,会自动把小数部分截掉
如要输出小数应该改为
printf("c is %f\n", c); //单精度的
或者
printf("c is %lf\n", c ); //双精度的
如要输出小数应该改为
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就是单精度的浮点数,精度不一样,能表示的数值的范围就不一样,双精度能表示的数比单精度的大很多
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先一点
把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的整数部分
希望对楼主有帮助
把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 这个就是运行模式了,它会把该程序的结果反映在现实窗口上。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;就是这个
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;就是这个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把
printf("c is %d\n",c);
改为
printf("c is %f\n",c);
printf("c is %d\n",c);
改为
printf("c is %f\n",c);
追问
huo。。。厉害。这么简单。。初学。。只是照葫芦画瓢。。是规定的%f即可显示小数部分??还有那个int double float 都是啥啊。。分别讲下都有啥特定功能?
还有 书上有这么一句话【用单目逻辑非运算符“!”把一个变量的数值转化为响应的逻辑真值或者假值】。。这话啥意思啊?能否举例说明?
还有【变量的储存类别】这部分有什么用么?什么auto static变量。。有什么用?能否说的简单些。。有例子最好?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询