Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将int向量转换为浮点向量C++;_C++_Casting - Fatal编程技术网

C++ 将int向量转换为浮点向量C++;

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++) {

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