web-dev-qa-db-ja.com

C ++でのlongdoubleの精度はどれくらいですか?

特定のプラットフォームでlong doubleの精度を調べる方法を知っている人はいますか?小数点以下17桁で精度が低下しているように見えます。これは、doubleを使用した場合と同じです。私のプラットフォームではdoubleは8バイトで表され、long doubleは12バイトであるため、さらに多くの情報が得られると思います。

質問する前に、これはプロジェクトオイラー用なので、はい、私doには17桁以上が必要です。 :)

編集:迅速な返信ありがとうございます。システムでlong doubleを使用すると、小数点以下18桁しか取得できないことを確認しました。

24
Bill the Lizard

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

#include <iostream>     // std::cout
#include <limits>       // std::numeric_limits
int main(){
    std::cout << std::numeric_limits<long double>::digits10 << std::endl;
}

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

LDBL_Dig
5
user7116