C语言:双精度与单精度是包含关系吗?那么我能所有的数都用双精度表标吗?

来源:百度知道 编辑:UC知道 时间:2024/05/16 05:11:57
C语言,刚学C语言一个月,遇到了不少问题:双精度与单精度是包含关系吗?那么我能所有的数都用双精度表示吗?如果不能或不够好,应在什么时候有单度,什么时候要用双精度,还有实型和整型呢,也同样吗,同样能所有数都用实型表示吗?长整型,短整型又有什么区别??本人没什么天分,各位大哥赐教
#include <stdio.h>
void main()
{
float a,b;
a=123456.789e5;
b=a+20;
printf("a=%f,b=%f\n",a,b);
}
以上输出结果是a=12345678848.000000,b=1234568868.000000这不难看出,是因为单精度只精确到7个有效数字,后面的8848.000000是随机的,问题是如果将上面的float改为double 为什么输出的变成了-509607936,b=1107754720,麻烦各为大哥抽点时间帮下忙啦

靠, 并不是答案长就一 定是对呀~!~!
我来说说吧 ~!
1.双精度与单精度的区别在于它们的数值范围不同,也就是说双精度比单精度的范围大,还有就是双精度比单精度所占空间也大,双精度占8字节,只占单精度4字节呀!用时只要适当就行~!
2.实型和整型也很好区分呀!~
整形在于它是一个整数,记住这就行 了~!
同样的,实型在于它是一个小数,当然也可以表示一个整数,比如说整数3,实数就是3.0了 !~
在应用时,要看自己的需要了~!
比如说: 要是成绩的话,就要用到实型了。
要是年龄的话就是整形了 !~
3.长整型与短整型也是范围、占用空间不同,长整型比短整型范围大,长整型的占用空间为4字节,而短整型只占用2字节空间~!
OK!

不是包含关系哈!单精度,顾名思义,精度较低。双精度,精度较高。当你需要高精度的时候,就用双精度,但双精度有个缺点,占用内存比单精度多些(双精度8个字节,单精度4个字节),当程序很大时,用双精度编的程序运行用的时间比较多,所以再不必需要高精度时,就用单精度。实型是单精度和双精度的统称,实型和整型在内存里的存储形式不一样。长整型在内存中占4个字节,短整型占2个字节,所以,长整型所表示的数值范围比短整型广。
对啦!我还是提醒你一句:学c语言不要在意语法,有个大概的了解就行啦,不然学不好的,c语言重要的是算法。我以前也是你这样学c语言,所以没学好,后来我改了,才把c语言学好的,不信,你把谭浩强编的《c程序设计》那本教材的前言看一下,那里有教你怎样学c语言的方法,我觉的谭浩强说得很对。祝你能学好c语言!

先回答你的问题:双精度与单精度是包含关系,双精度的数不能表示所有的数(如果超出它的表示范围),看场合用单度,双精度,整型(好像没实型这个数据类型吧),长整型和短整型区别是它们的表示范围不同。

下面是这些数据类型的表示范围:
int -32768~32767
short int -32768~32767 //整型和短整型是一样的
signed int -32768~32767
unsigned