1

皆さん!少し問題が発生しました。3 つの double 値で単純な加算を行っています。結果は、使用された値よりも精度が低くなります。

double minutes = 3;
minutes = minutes / (24.0*60.0);  // contains 0.00208333
double hours = 3;
hours = hours / 24.0; // contains 0.125
double days = 3; // contains 3 

double age = days + hours + minutes; // result is 3.12708 

この動作を回避する方法が見つかりませんでした。

4

3 に答える 3

5

あなたの投稿のコメントが言ったように、計算に問題はないようです。

さらに精度を確認したい場合は、setprecision()を調べることを検討してください

于 2013-06-20T12:26:09.477 に答える
0

場合によっては、目的の精度に従って値を取得するために、精度の制限を指定する必要があります。これがうまく機能する私のコードです。

double minutes = 3;
minutes = minutes / (24.0*60.0);
double hours = 3;
hours = hours / 24.0; 
double days = 3;
double age = days + hours + minutes;
printf("%.8f",age);//here i have included the places of precision (.8)
于 2013-06-20T12:59:31.630 に答える