2

重複の可能性:
numeric_limits<double>::digits10 の意味は何ですか

私の理解によると (私がインターネットに乗ったものについて) std::numeric_limits<double>::digits10(これdoubleは に等しい) は、処理できる15桁数を表しているようです。double

反対側では、倍精度浮動小数点形式の範囲は まで続きます1.8*10^+308。これは、15 桁でしか保持されない数値を表しているようです...

矛盾はどこにありますか?

4

3 に答える 3

4

... std::numeric_limits<double>::digits10(fordoubleは 15 に等しい) は double が処理できる桁数を表します...

より正確には、精度を損なうことなく格納できる有効桁数です。

Python での例:

1e15 == 1e15 + 1
False 

1e16 == 1e16 + 1
True # loss of precision
于 2012-10-29T10:47:21.543 に答える
1

std::numeric_limits::digits10 : 変更せずに表現できる桁数 (10 進数)。

于 2012-10-29T10:47:45.260 に答える
1

1つは有効数字です。もう 1 つは、表現可能な数値の範囲です。したがって、次のことができます。

1.23456789012345*10^308

だがしかし

1.234567890123456*10^308

これは、有効数字15と表現可能な範囲 の両方を示しています10^308

于 2012-10-29T10:49:39.493 に答える