如何将 float 转换或缩放为无符号整数。
我有一个浮点 vector ,其最小值和最大值已知,比方说 -10 到 +10,我想将它们转换为从 0 到 int_max 的无符号整数。
最佳答案
简单地计算浮点值在浮点区间中的确切位置(作为 0-1 值;您也可以将其视为百分比)。然后相应地缩放最大整数值。在代码中:
const float minFloat = -10.f;
const float maxFloat = 10.f;
const unsigned int maxInt = std::numeric_limits<int>::max(); // Is that what you wanted?
unsigned int convert(float val)
{
val = (val - minFloat) / (maxFloat - minFloat);
return static_cast<unsigned int>(std::round(val * maxInt));
}
关于c++ - 将 float 转换为无符号整数 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26428606/