C++中 double、 long double表示的数据范围一样那他们有什么区别

 我来答
俱怀逸兴壮思飞欲上青天揽明月
推荐于2016-07-26 · TA获得超过12.9万个赞
知道大有可为答主
回答量:1.4万
采纳率:78%
帮助的人:2948万
展开全部
double、 long double的区别在于:
在很多编译器中,double的精度不如long double。在VC6.0中double和long double一样都是分配8个字节,15位有效数字;但是在GCC中long double分配12个字节,精确度自然就比double高出四个数量级

double,即double float数据类型,是双精度浮点型的数据。计算机中表示实型变量的一种变量类型。此数据类型与单精度数据类型(float)相似,但精确度比float高,编译时所占的内存空间依不同的编译器而有所不同,通常情况,单精度浮点数占4字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,;双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308。
方小超1号
2011-02-27
知道答主
回答量:32
采纳率:0%
帮助的人:16.5万
展开全部
其实在VC6.0中double和long double一样都是分配8个字节,15位有效数字;但是在GCC中long double分配12个字节。初学者基本上用不到long double。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kainster
2011-03-09 · TA获得超过619个赞
知道答主
回答量:232
采纳率:0%
帮助的人:254万
展开全部
这个跟编译器相关, VC6里不用考虑它们的区别,所以一般不用细想这个。 liuyan12600 回答的比较详细。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
8187915
2011-02-27
知道答主
回答量:14
采纳率:0%
帮助的人:0
展开全部
有效数字的范围long double的要比double的多 在C中 long double 的是18-19个 double 是15-16个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuyan12600
2011-02-27 · 超过31用户采纳过TA的回答
知道答主
回答量:159
采纳率:0%
帮助的人:128万
展开全部
据我所知,double和long double都是ANSI C标准的浮点数。但ANSI C并未规定long double的确切精度。所以对于不同平台可能有不同的实现。有的是8字节,有的是10字节,有的是12字节或更多。一般来说long double的精度要高于double, 至少相等,就像int和long int一样。但同一平台也可能不一样,比如MS自己的C/C++/VC++就不一样。好像以前16位的VC++中long double用10字节,而Win32就改用了8字节,和double一样了。MS保留long double类型的库函数是为了兼容,用户能够继续使用以前编写的代码。MS也说明以后编写程序时不要再使用asinl, acosl这样的long double类型的库函数。但long double的数据类型还是要保留的,它毕竟是ANSI C标准规定的数据类型。说不定哪天他的C/C++会把long double弄成16字节的呢。

参考资料: http://zhidao.baidu.com/question/46482588.html

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式