为什么将floats推到向量时,为什么要获得零

Why do I get zero when pushing_back floats to a vector?

本文关键字:为什么 向量 floats      更新时间:2023-10-16

在测试某个某个时,我创建了一个类型float的向量,并将值1/i放入该向量;但是,在读取值时,将输出打印为整数而不是浮动。

#include <stdio.h>
#include <vector>
#include <iterator>
int main(int argc, char const *argv[])
{
    std::vector<float> testVec;
    for (int i = 1; i < 5; ++i)
    {
        float v = 1/i;
        testVec.push_back(v);
    }
    std::vector< float >::iterator it = testVec.begin();
    for (; it!=testVec.end(); ++it)
    {
        printf("The value of the iterator: %f, *it);
    }   
    return 0;
}

那么,这有什么问题?它与迭代器有关吗?我的意思是我对他们的经验不多。

您问题背后的原因是 1/i CC_1属于类型的整数是 Integer Arithmetic ,并且会给整数作为输出。


1.0代替1会为您提供帮助。:)