C浮点控制台输出问题

C浮点控制台输出问题,第1张

概述float x = 384.951257;std::cout << std::fixed << std::setprecision(6) << x << std::endl; 输出为384.951263.为什么?我正在使用gcc. float通常只有32位.每个十进制数约为3位(210大致等于103),这意味着它不可能代表超过大约11个十进制数字,并且考虑到它还需要表示的其他信息,例如幅度,比如
float x = 384.951257;std::cout << std::fixed << std::setprecision(6) << x << std::endl;

输出为384.951263.为什么?我正在使用gcc.

解决方法 float通常只有32位.每个十进制数约为3位(210大致等于103),这意味着它不可能代表超过大约11个十进制数字,并且考虑到它还需要表示的其他信息,例如幅度,比如6-7个十进制数字.嘿,这就是你得到的!

检查例如维基百科的详细信息.

使用double或long double可获得更好的精度. double是C中的默认值.例如,文字3.14是double类型.

总结

以上是内存溢出为你收集整理的C浮点控制台输出问题全部内容,希望文章能够帮你解决C浮点控制台输出问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1220079.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存