C++ 将int向量转换为浮点向量C++;
我尝试了如下所示的C cast样式,但没有效果C++ 将int向量转换为浮点向量C++;,c++,casting,C++,Casting,我尝试了如下所示的C cast样式,但没有效果 #include <iostream> #include <vector> using namespace std; int main() { std::vector<int> intVec = { 1, 2, 3 }; std::vector<float> floatVec; for (int i = 0; i < intVec.size(); i++) {
#include <iostream>
#include <vector>
using namespace std;
int main()
{
std::vector<int> intVec = { 1, 2, 3 };
std::vector<float> floatVec;
for (int i = 0; i < intVec.size(); i++)
{
float new_num = (float)intVec[i];
floatVec.push_back(new_num);
}
for (int i = 0; i < floatVec.size(); i++)
cout << floatVec[i] << endl;
return 0;
}
没有得到{1.0,2.0,3.0}的结果,我做错了什么?与cout一起使用,如下所示:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
std::vector<int> intVec = { 1, 2, 3 };
std::vector<float> floatVec;
for (int i = 0; i < intVec.size(); i++)
{
float new_num = (float)intVec[i];
floatVec.push_back(new_num);
}
for (int i = 0; i < floatVec.size(); i++)
cout << std::fixed << floatVec[i] << endl;
return 0;
}
如果要设置小数精度,可以使用这些数字是浮点数,这就是打印浮点数的默认方式<代码>标准::cout OK,这意味着converson工作正常,我没有意识到在设置精度的情况下。谢谢<代码>标准::向量floatVec(intVec.begin(),intVec.end())代码>比循环更方便。
float new_num=intVec[i]代码>已足够。没有必要设定该值。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
std::vector<int> intVec = { 1, 2, 3 };
std::vector<float> floatVec;
for (int i = 0; i < intVec.size(); i++)
{
float new_num = (float)intVec[i];
floatVec.push_back(new_num);
}
for (int i = 0; i < floatVec.size(); i++)
cout << std::fixed << floatVec[i] << endl;
return 0;
}
1.000000
2.000000
3.000000