c++ - 如何在 C++ 中打印 6 位精度的浮点值?

标签 c++ decimal precision digit

默认情况下,我得到 4 位精度,当我使用 setprecision(6) 时,变量的最后一位随机出现,如 1/3=0.333369

最佳答案

float 具有大约 7 个十进制数字的精度,因为它使用 24 个二进制数字来存储数字的数字。就输出而言,setprecision(6) 可以满足您的所有要求。

您可能会失去精度,例如,将两个具有相似值的数字相减并打印结果。快速解决方案是将计算更改为使用 doublelong double。但是要保证浮点结果的精度,您需要了解 FP 的工作原理并分析您的公式是如何计算的。

参见 What Every Computer Scientist Should Know About Floating-Point Arithmetic .

关于c++ - 如何在 C++ 中打印 6 位精度的浮点值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14120646/

相关文章:

c++ - 尝试使用文本文件初始化多个结构变量

javascript - Highcharts - 散点图 : set decimals of x-axis and y-axis

jdbc - Jaybird 中的 Firebird NUMERIC/DECIMAL 精度和比例

math - float 学有问题吗?

c++ - Qt TabStop 颜色问题

c++ - C(99) 和 C++(11) 有什么不兼容的区别?

c++ - 随机 std::array

c# - 从 Single 到 Decimal 的显式转换导致不同的位表示

Cassandra 浮点精度

r - 为什么我们渐进地接近值 0 "more"而不是值 1?