默认情况下,我得到4位精度,当我使用setprecision(6)
时,变量的最后一位数字随机变为1/3=0.333369
。
答案 0 :(得分:4)
float
具有大约7个十进制数字的精度,因为它使用24个二进制数字来存储数字的数字。就输出而言,setprecision(6)
可以做你想要的一切。
您可能正在失去精度,例如通过减去具有相似值的两个数字并打印结果。快速解决方案是将计算更改为使用double
或long double
。但是为了保证浮点结果的精度,你需要了解FP的工作原理并分析你的公式计算方式。
请参阅What Every Computer Scientist Should Know About Floating-Point Arithmetic。