特定のプラットフォームでlong double
の精度を調べる方法を知っている人はいますか?小数点以下17桁で精度が低下しているように見えます。これは、double
を使用した場合と同じです。私のプラットフォームではdouble
は8バイトで表され、long double
は12バイトであるため、さらに多くの情報が得られると思います。
質問する前に、これはプロジェクトオイラー用なので、はい、私doには17桁以上が必要です。 :)
編集:迅速な返信ありがとうございます。システムでlong double
を使用すると、小数点以下18桁しか取得できないことを確認しました。
あなたは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