长双精度精度不起作用或 devcpp 失败
我用过这个:
long double f =79228162514264337593543950336.0;//maximum ; 2 ^ 96 because f is 12 bytes
cout.precision(30);
cout<<f;
但是有些数字出错了。为什么 ?
I have used this :
long double f =79228162514264337593543950336.0;//maximum ; 2 ^ 96 because f is 12 bytes
cout.precision(30);
cout<<f;
But some numbers turns wrong . why ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的实现提供了多大的 long double (或者,等效地,它为 LDBL_DIGITS 显示什么值)?它通常是 80 位类型,具有约 20 位有效(十进制)数字。请特别注意,浮点类型将分为尾数(有效数字)和指数,因此如果它总共有 12 个字节,则它将没有有 12 位有效数字,因此您可以不希望看到 12 字节的精度。
What size of long double does your implementation provide (or, equivalently, what value does it show for LDBL_DIGITS)? It's often an 80-bit type with ~20 significant (decimal) digits. Note, in particular, that a floating point type will be divided between a mantissa (significand) and an exponent, so if it's 12 bytes overall, it will not have a 12-bit significand, so you can't expect to see 12 bytes worth of precision.
long double
文字的正确后缀是L
:The correct suffix for
long double
literals isL
: