10^1.64605 = 44.2639330165Потеря точности при использовании Pow в C++
Однако в C++ с использованием pow
:
double p = pow(10,1.64605) returns 44.2641.
Есть ли способ, чтобы увеличить точность здесь? Я попробовал отличить обе стороны до long double
, но это тоже не помогло.
Более интересным является:
cout<<p;
double a = -1.64605;
cout<<pow(10,-a);
p = pow(10, (-p));
cout<<p;
выход:
-1.64605
44.2639
44.2641
Почему?
За исключением использования Bignum lib, возможно, нет ничего лучше. – deviantfan
при получении 44.2641 что вы используете для его отображения? отладчик? COUT? Printf? – diverscuba23
попробуйте добавить #include, а затем cout << setprecision (10) << p и cout << setprecision (10) << pow (10 -a) –
diverscuba23