C语言中float和double的区别!
C语言中float和double的区别!他们的有效数字和小数点后几位等问题,我总是比较迷糊。高手解答一下...
C语言中float和double的区别!他们的有效数字和小数点后几位等问题,我总是比较迷糊。高手解答一下
展开
13个回答
2009-03-15
展开全部
请您花至少一个星期的时间阅读ieee754的标准,这里讲不清楚的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
double、float都是浮点型。double(双精度型)比float(单精度型)存的数据更准确些,占的空间也更大。double精度是float的两倍,所以需要更精确的计算常使用double。
单精度浮点数在机内占4个字节,用32位二进制描述。
双精度浮点数在机内占8个字节,用64位二进制描述。
浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。
数符占1位二进制,表示数的正负。
指数符占1位二进制,表示指数的正负。
尾数表示浮点数有效数字,0.xxxxxxx,但不存开头的0和点
指数存指数的有效数字。
指数占多少位,尾数占多少位,由计算机系统决定。
可能是数符加尾数占24位,指数符加指数占8位
--
float.
数符加尾数占48位,指数符加指数占16位
--
double.
知道了这四部分的占位,按二进制估计大小范围,再换算为十进制,就是你想知道的数值范围。
对编程人员来说,double
和
float
的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,C语言中数学函数名称double
和
float不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)。
单精度浮点数在机内占4个字节,用32位二进制描述。
双精度浮点数在机内占8个字节,用64位二进制描述。
浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。
数符占1位二进制,表示数的正负。
指数符占1位二进制,表示指数的正负。
尾数表示浮点数有效数字,0.xxxxxxx,但不存开头的0和点
指数存指数的有效数字。
指数占多少位,尾数占多少位,由计算机系统决定。
可能是数符加尾数占24位,指数符加指数占8位
--
float.
数符加尾数占48位,指数符加指数占16位
--
double.
知道了这四部分的占位,按二进制估计大小范围,再换算为十进制,就是你想知道的数值范围。
对编程人员来说,double
和
float
的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,C语言中数学函数名称double
和
float不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用痴人ck的回答:
float为单精度,占4字节(32位)的内存空间,它的数值有效范围是-10的32次方到10的32次方,只表示7位有效数字。而double为双精度,8字节,正负10的308次方之间,能精确到16位。这应该就是他们的的最基本的区别吧。。。
float为单精度,占4字节(32位)的内存空间,它的数值有效范围是-10的32次方到10的32次方,只表示7位有效数字。而double为双精度,8字节,正负10的308次方之间,能精确到16位。这应该就是他们的的最基本的区别吧。。。
展开全部
float为单精度,占4字节(32位)的内存空间,它的数值有效范围是-10的32次方到10的32次方,只表示7位有效数字。而double为双精度,8字节,正负10的308次方之间,能精确到16位。这应该就是他们的的最基本的区别吧。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询