c语言单精度和双精度各保留几位小数 有什么区别 3.14是单精度还是双精度
C语言中,双精度浮点(double)型,占8 个字节(64位)内存空间。其数值范围为1.7E-308~1.7E+308,双精度完全保证的有效数字是15位,16位只是部分数值有保证,而单精度保证7位有效数字,部分数值有8位有效数.
3.14是单精度。
c语言中什么是单精度型和双精度型???各举个例子。。。
单精度型和双精度型的区别在于它们的精确程度不一样,也就是小数部分的有效位数不一样。
单精度数(float型)在32位计算机中存储占用4字节,也就是32位,有效位数为7位,小数点后6位;双精度数(double型)在32位计算机中存储占用8字节,也就是64位,有效位数为16位,小数点后15位。
比如3.1415926535897932384这个小数,如果定义成float型,那么只会留下小数点后5位,也就是3.141592,如果定义成double型,那么只会留下小数点后15位,也就是3.141592653589793。
扩展资料
计算机的数都是以二进制进行存储。无论是单精度浮点数还是双精度浮点数,在计算机上的存储都遵循IEEE 754规范,使用二进制科学计数法。
二进制科学计数法包含三个部分:符号位,指数位和尾数部分。单精度数的符号位,指数位和尾数部分分别为1,8,23,而双精度为1,11,52。
而单双精度中的精度就主要取决于尾数部分的位数。float的尾数尾数为23位,除去全部为0的情况以外,最小为2的-23次方,因此float小数部分只能精确到后面6位。类似的,double尾数位数为52,最小为2的-52次方,因此只能精确到小数点后15位。
参考资料来源:百度百科-单精度浮点数
参考资料来源:百度百科-双精度浮点数
C语言中单精度数据的存储范围,求高手指点啊
单精度存储首先最高位是符号位。
然后有8位的指数位。代表
2^-127
~
2^128
(存储时
127代表
2^0
255代表2^128
0为
2^-127)
后面的23位是尾数即小数位。没有整数,在存储时会移好位,使的整数为1,如2
会存成
1*2^1
这样,1.9999*2^128
大约为
6.8*10^38
双精度的指数部分为11位,2^-1023~2^1024
最大能存大约
3.595*10^308
C语言中的单双精度具体指什么
就是存储数据的精度问题,也就是小数点后能精确多少位
在二进制的计算机存储模型下,小数一般不能精确的存储,只能是一个近似的值
除了0.5
0.25
0.375等这些2的n次方分之几的数外,其他的小数都是近似存储的,你可以手工计算一下0.1的二进制小数值
单精度应该是2个字节存储小数,双精度应该是4个字节存储小数
字节数不同,那么所能表达的精度应该是不同的吧
c语言中单精度和双精度有什么区别
单精度,也就是 float ,在 32 位机器上用 4 个字节来存储的;而双精度都是用 8 个字节来存储的。
这是他们最本质的区别。由于存储位不同,他们能表示的数字的范围也不同,具体能表示多大的范围,查一下手册就知道了。
c语言中单双精度?
不是“电脑输出的数字都是正确的”。
float最多只能保证7~8位有效数字(高位为较小的数时为8位,一般只能保证7位有效数字),强制flost输出多于有数数字的位数时,多余的数字没有意义。
而double能够保证15位有效数字(第5行中b中第9位以后的数字也是已经没有意义的了)。
请仔细观察下面的程序和运行的结果: