1

私は長い double を持っており、 cout を使用してそのすべての桁 (科学表記法なしの完全な数) を出力したいと考えています。

コードは次のとおりです:-

long double d = 3456489465498484.14159265358979;
cout << "Num: " <<  d << endl;

出力:-

Num: 3.45649e+015

出力をしたいのですが

Num: 3456489465498484.14159265358979;

精度を試して精度を設定しましたが、このように機能しないようです。助けてください

4

1 に答える 1

0

通常、浮動小数点値の内部表現は 2 進数であるため、初期化するには 10 進数から 2 進数に変換する必要があり、表示するには 2 進数から 10 進数に変換する必要があります。ほとんどの小数には正確な 2 進表現がなく、ほとんどの 2 進分数には正確な 10 進表現がないため、一般に、「すべて」の数字を求めることは意味がありません。途中でいくつかの数字を失いましたが、途中でさらに失うことになります。必要な数を決定し、一致する精度を設定します。

于 2013-06-18T17:43:33.340 に答える