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

时间:2013-01-02 10:44:10

标签: c++ decimal precision digit

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

1 个答案:

答案 0 :(得分:4)

float具有大约7个十进制数字的精度,因为它使用24个二进制数字来存储数字的数字。就输出而言,setprecision(6)可以做你想要的一切。

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

请参阅What Every Computer Scientist Should Know About Floating-Point Arithmetic