いくつかの計算を実行したいのですが、結果を小数点以下の桁数、たとえば 12 まで正しくしたいので、サンプルを書きました。
#define PI 3.1415926535897932384626433832795028841971693993751
double d, k, h;
k = 999999/(2*PI);
h = 999999;
d = PI*k*k*h;
printf("%.12f\n", d);
しかし、それは出力を与えます:
79577232813771760.000000000000
私も setprecision() を使用しましたが、指数形式ではなく同じ答えです。
cout<<setprecision(12)<<d<<endl;
版画
7.95772328138e+16
ロングダブルも使用しましたが無駄でした。
整数部分と小数部分を別々に long long int 型に格納する以外に方法はありますか?
もしそうなら、正確な答えを得るために何ができるでしょうか?