我尝试了如下所示的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