小编Old*_*ish的帖子

如何汇总大量浮点数?

我建立了一个并行和代码来汇总大量的浮点数然后我发现当数字的数量大于100000000时,结果会出错.然后我构建一个串行代码进行比较.序列号也输错了号码.谁知道为什么?谢谢!

我的简单代码如下.

结果是"1.67772e + 007".它应该是1e + 008

int main()
{
    size_t N=100000000;
    cout<<"n is : "<<N<<endl;
    clock_t start = clock();
    task_scheduler_init init;
    vector<float> myvec;
    vector<float>* pvec;
    for(int i=0;i<N;i++)
        myvec.push_back(1.0f);
    pvec=&myvec;
    float mysum;
    mysum=parallelSum(pvec);
    cout<<" the p sum is: "<<mysum<<endl;
    clock_t finish = clock();
        cout<<"Time Used  = "<<(finish - start)/CLOCKS_PER_SEC<<endl;
        mysum=0;
       for(int i=0;i<N;i++)
    mysum+=myvec[i];
        cout<<" the s sum is: "<<mysum<<endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++

10
推荐指数
3
解决办法
8866
查看次数

标签 统计

c++ ×1