默认情况下,我会得到4位数的精度,当我使用setprecision(6)
时,变量的最后几位会像1/3=0.333369
一样随机出现。
发布于 2013-01-02 18:50:55
float
的精度约为7位小数,因为它使用24位二进制数来存储数字的位数。就输出而言,setprecision(6)
可以满足您的所有要求。
您可能会失去精度,例如,通过减去两个具有相似值的数字并打印结果。快速的解决方案是将计算更改为使用double
或long double
。但是要保证浮点结果的精度,你需要了解FP是如何工作的,并分析你的公式是如何计算的。
参见What Every Computer Scientist Should Know About Floating-Point Arithmetic。
https://stackoverflow.com/questions/14120646
复制相似问题