26

long double特定のプラットフォームでの精度を調べる方法を知っている人はいますか? を使用した場合と同じように、10 進数で 17 桁を超えると精度が低下しているようdoubleです。double私のプラットフォームでは 8 バイトで表されるのに対し、long doubleは 12 バイトで表されるため、さらに取得することが期待されます。

あなたが尋ねる前に、これは Project Euler のためのものなので、はい、17 桁以上が必要です:)

編集:素早い返信ありがとうございます。私のシステムで を使用して、10 進数で 18 桁しか取得できないことを確認しlong doubleました。

4

2 に答える 2

36

あなたはで見つけることができますstd::numeric_limits

#include <iostream>     // std::cout
#include <limits>       // std::numeric_limits
int main(){
    std::cout << std::numeric_limits<long double>::digits10 << std::endl;
}
于 2009-01-24T16:13:29.760 に答える
6

<cfloat>を使用できます。具体的には:

LDBL_DIG
于 2009-01-24T16:17:21.670 に答える