我有一个返回双精度的 API 调用。双精度的小数长度可以从许多小数位变化到几个小数位(这都归结为执行器的状态)。这个双精度表示执行器范围半径上的当前位置。我对这么详细的数字不感兴趣,因为它给系统增加了很多噪音。我一直在使用浮点数来节省空间,但我仍然有 6-8 个十进制长度的浮点数。我对地板或天花板不感兴趣,只是因为它不能完成我想要的工作。例如,我有数字:
-2.05176
-0.104545
0.30643
0.140237
1.41205
-0.176715
0.559462
0.364928
无论如何,我都希望将精度设置为小数点后 2 位。我不是在谈论 std::cout 上的输出精度,我知道如何设置它。我说的是浮动的实际精度。即:我对具有 0.XX 格式和 0.XX00000000000 实际精度的浮点数感兴趣。因此将上面的列表转换为:
-2.05
-0.10
0.30
0.14
1.41
-0.17
0.55
0.36
我知道 boost 有一个数值转换模板,但我不知道如何使用较低的精度从浮点数转换为浮点数。有人可以帮忙吗?