Подтвердить что ты не робот

Значительные десятичные цифры двойного?

Что означает стандарт C/С++ - Standard о минимальных значащих десятичных знаках double?

Стандарт С++ на самом деле говорит в сноске § 18.3.2.4/10, что эквивалентно DBL_DIG, как определено в стандарте C. Но я не могу найти ничего о минимальном значении в стандарте C.

Итак, каково минимальное значение одного из следующих?

  • std::numeric_limits<double>::digits10
  • DBL_MANT_DIG edit: Нет, DBL_DIG
4b9b3361

Ответ 1

Вы не найдете его в стандарте С++, потому что С++ отменит стандарт C на этом. Для десятичных цифр минимальные значения:

FLT_DIG   6
DBL_DIG  10
LDBL_DIG 10

Итак, 6 цифр для float и 10 для double и long double. (Это число цифр, для которых гарантировано, что преобразование текста в тип и обратно приведет к тому же значению.)

Обратите внимание, что DBL_MANT_DIG соответствует количеству цифр в базе, таким образом, обычно число двоичных цифр, а не число десятичных цифр.