如何在C ++中将float转换为unsigned int?

时间:2020-07-07 22:02:33

标签: c++ unsigned-integer

我想将float转换为unsigned int。当我使用此代码时,终端显示3:

#include <iostream>

int main() {
  float test = 3.4;
  std::cout << "test : " << int(test) << "\n";
}

但是当我使用这段代码时,我出现了一个错误:

#include <iostream>

int main() {
  float test = 3.4;
  std::cout << "test : " << unsigned int(test) << "\n";
}

我的错误是:

example.cc: In function ‘int main()’:
example.cc:5:29: error: expected primary-expression before ‘unsigned’
    5 |   std::cout << "test : " << unsigned int(test) << "\n";
      |    

有人可以帮助我吗?我需要使用一个无符号的整数。 谢谢!

1 个答案:

答案 0 :(得分:4)

功能转换type(expr),即要求将类型拼写为单个单词(不带空格,[]*,{ {1}},等等。

&不是一个单词,因此是不允许的。

您的选择是:

  • 使用常规C样式强制转换:unsigned int

  • 省略(unsigned int)test。单独int的含义与unsigned相同,因此您可以编写unsigned int

  • 使用unsigned(test)static_cast