12

C / C ++-Standardは、aの最下位10進数について何を保証しdoubleますか?

C ++標準は、§18.3.2.4 / 10の脚注で、これはDBL_DIGC標準で定義されているものと同等であると実際に述べています。しかし、C規格の最小値については何も見つかりません。

では、次のいずれかの最小値は何ですか?

  • std::numeric_limits<double>::digits10
  • DBL_MANT_DIG編集:いいえ、DBL_DIG
4

1 に答える 1

12

C ++はこの標準のC標準に準拠しているため、C++標準には含まれていません。10進数の場合、最小値は次のとおりです。

FLT_DIG   6
DBL_DIG  10
LDBL_DIG 10

したがって、は6桁、とfloatは10桁です。(これは、テキストからタイプへの変換とその逆の変換が同じ値になることが保証されている桁数です。)doublelong double

DBL_MANT_DIGこれは、基数の桁数に対応するため、通常は10進数ではなく、2進数に対応することに注意してください。

于 2013-01-08T23:32:38.220 に答える