2

クラス全体でアクセス可能ないくつかの定数を必要とするクラスを C++ で作成しています。通常、私は #define、const-、または static 宣言を使用しますが、何か奇妙なことが起こっています: たとえば、次のように書きます

#define Rm 8.3144621

しかしstd::cout << Rm << std::endl;

8.31446 を出力します。

私も試しました

#define Rm 831.44621e-2

const double Rm = 8.3144621

static double Rm = 8.3144621

double 定数を初期化またはキャストするすべての可能な方法。

そのための解決策はありますか、それともフィールドを使用する必要がありますか?

4

2 に答える 2

6

double をすべての数字で出力する必要がある場合は、正しい精度を設定する必要があります。

std::cout << std::fixed;
std::cout << std::setprecision(7) << Rm << std::endl;

ここでライブデモをご覧ください: Double print Demo

于 2013-05-29T23:41:30.880 に答える
0

試す

std::cout << std::setprecision(8) << Rm << std::endl
于 2013-05-29T23:41:53.667 に答える