c++ - 将 float 转换为无符号整数 C++

标签 c++ integer

如何将 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/

相关文章:

java - 制定 Intent ,作为 Activity 的一部分?

c++ - 如何将字符串转换为缩写形式?

php - Crypto++ 到 PHP mcrypt 不工作

java - 如何使用 Swig 将数组从 Java 传递到 C++?

MySQL、XML bool 值和整数 : Incorrect integer value:

c++ - 简单的 C++ 阶乘程序

c++ - 构建 XPCOM Mozilla 示例组件

c++ - 在两个 C++ 程序之间交换消息

java - 将整数列表转换为逗号分隔的字符串?

c - 如何根据输入的数字将答案设为 float 或整数?