33

double よりも「大きい」ネイティブの c++ 変数型はありますか?
float は 7
double は 15 (もちろんコンパイラによって異なります)
ネイティブまたは非ネイティブでさえあるより大きなものはありますか?

4

8 に答える 8

40

C++ にはlong doubleがありますが、プレーンよりも正確であるという保証はありませんdouble。x86 プラットフォームでは、通常doubleは 64 ビットであり、64 ビットlong doubleまたは 80 ビットのいずれかです (私の記憶が正しければ、有効数字は 19 桁になります)。

特にx86を使用していない場合は、マイレージが異なる場合があります。

于 2008-11-02T20:58:44.053 に答える
12

通常、long double は 10 バイトしか使用しませんが、アラインメントのために、実際には (コンパイラとオプションに応じて) 構造体で 12 または 16 バイトを使用する場合があります。

10 バイトの長さの double は、64 ビットの仮数を提供します。これは、精度を落とさずに 64 ビット整数を浮動小数点に格納したい場合に非常に便利です。

于 2008-11-03T00:00:15.963 に答える
9

GNU MPを使用できます。その浮動小数点関数には、無制限の仮数と 32 ビットまたは 64 ビット (ネイティブのワード サイズによる) の指数があります。また、 C++ ラッパーも付属しています。

于 2008-11-02T21:30:47.717 に答える
3

C ++には長いdoubleがありますが、それでもかなり制限されています。良い時間のためにGNUのgmpライブラリを試してみてください。好きなだけ大きな数字を設定できます。通常の+の代わりにgmp_addを使用すると、非常に楽しく、ハックっぽくなります。どこかにC++ラッパーがあると確信しています。

于 2008-11-02T22:05:58.457 に答える
3

任意精度の計算を可能にする C++ 用のさまざまな bigfloat/bigint ライブラリもいくつかあります。このライブラリは Microsoft Codeplex にありますが、Google で調べれば他にもたくさん見つかります。

于 2008-11-02T21:16:07.417 に答える
2

long long double 一部のCPUのみが使用できます...

于 2010-09-03T02:44:31.063 に答える
2

long double ですが、通常は 15 桁の精度でもあります。

于 2008-11-02T20:58:58.543 に答える