0

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

4

1 回答 1

4

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

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

看看每个计算机科学家应该知道的关于浮点运算的知识

于 2013-01-02T10:50:55.243 回答