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浮点控制台输出问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)