将int矢量转换为float矢量C++



我尝试了如下所示的C转换样式,但无效

#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
2
3

结果没有得到{1.0、2.0、3.0},我做错了什么?

使用std::fixed with 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;
}

输出

1.000000
2.000000
3.000000

如果要设置小数精度,可以使用std::setprecision

最新更新