C ++のlong doubleの精度は何ですか?
-
20-08-2019 - |
質問
特定のプラットフォームで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
所属していません StackOverflow