Я создаю код суммарной суммы, чтобы суммировать большое количество чисел с плавающей запятой, после чего я обнаружил, что число цифр больше 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;
}