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字节的呢。
double 和 long double
最新推荐文章于 2025-05-14 17:49:33 发布
本文探讨了ANSIC标准下的longdouble与double两种浮点数类型的差异。longdouble的精度通常高于double,但在某些平台上可能与double相同。文章还提到了在不同编译环境下longdouble的字节数变化,并建议避免使用特定于longdouble的库函数。
2万+

被折叠的 条评论
为什么被折叠?



