gpt4 book ai didi

C++如何为 float 设置固定的小数精度

转载 作者:太空狗 更新时间:2023-10-29 20:06:41 27 4
gpt4 key购买 nike

我有一个返回 double 的 API 调用。 double 的十进制长度可以从许多小数位到几个小数位不等(这都归结为执行器的状态)。此 double 表示执行器范围半径上的当前位置。我对这么详细的数字不感兴趣,因为它会给系统增加很多噪音。我一直在使用 float 来节省空间,但我仍然有 6-8 位小数长度的 float 。我对 floor 或 ceil 不感兴趣,只是因为它不能完成我想要的工作。例如,我有数字:

-2.05176
-0.104545
0.30643
0.140237
1.41205
-0.176715
0.559462
0.364928

无论如何我都希望将精度设置为小数点后两位。我不是在谈论 std::cout 的输出精度,我知道如何设置它。我说的是 float 的实际精度。即:我对具有 0.XX 格式和 0.XX00000000000 实际精度的 float 感兴趣。因此将上面的列表转换为:

-2.05
-0.10
0.30
0.14
1.41
-0.17
0.55
0.36

我知道 boost 有一个数值转换模板,但我不知道如何使用较低的精度将 float 转换为 float。有人可以帮忙吗?

最佳答案

你不能把它四舍五入吗。

float round(float num, int precision)
{
return floorf(num * pow(10.0f,precision) + .5f)/pow(10.0f,precision);
}

关于C++如何为 float 设置固定的小数精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6657858/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com