我想将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";
|
有人可以帮助我吗?我需要使用一个无符号的整数。 谢谢!
答案 0 :(得分:4)
功能转换(type(expr)
,即要求将类型拼写为单个单词(不带空格,[]
,*
,{ {1}},等等。
&
不是一个单词,因此是不允许的。
您的选择是:
使用常规C样式强制转换:unsigned int
。
省略(unsigned int)test
。单独int
的含义与unsigned
相同,因此您可以编写unsigned int
。
使用unsigned(test)
:static_cast
。