默认情况下,我得到 4 位精度,当我使用 setprecision(6)
时,变量的最后一位随机出现,如 1/3=0.333369
。
最佳答案
float
具有大约 7 个十进制数字的精度,因为它使用 24 个二进制数字来存储数字的数字。就输出而言,setprecision(6)
可以满足您的所有要求。
您可能会失去精度,例如,将两个具有相似值的数字相减并打印结果。快速解决方案是将计算更改为使用 double
或 long double
。但是要保证浮点结果的精度,您需要了解 FP 的工作原理并分析您的公式是如何计算的。
参见 What Every Computer Scientist Should Know About Floating-Point Arithmetic .
关于c++ - 如何在 C++ 中打印 6 位精度的浮点值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14120646/