質問

特定のプラットフォームでlong doubleの精度を調べる方法を知っている人はいますか? 17桁の10進数の後に精度が失われているように見えますが、これはdoubleを使用した場合と同じです。私のプラットフォームでは<=>が8バイトで表されているのに対し、<=>は12バイトであるため、さらに多くが得られると予想されます。

質問する前に、これはProject Eulerのためです。はい、17桁以上必要です。 :)

編集:迅速な返信をありがとう。システムで<=>を使用して、18桁の10進数しか取得できないことを確認しました。

役に立ちましたか?

解決

std::numeric_limits

で確認できます
#include <iostream>     // std::cout
#include <limits>       // std::numeric_limits
int main(){
    std::cout << std::numeric_limits<long double>::digits10 << std::endl;
}

他のヒント

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

LDBL_DIG
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top