numeric_limits::digits10
- это количество десятичных цифр, которое можно хранить без потерь.
Например, numeric_limits<unsigned char>::digits10
равно 2. Это означает, что беззнаковый символ может держать 0..99 без потерь. Если бы было бы 3, оно могло бы содержать 0..999, но, как мы все знаем, оно может содержать только 0..255.
Эта страница руководства содержит пример чисел с плавающей запятой, который (при сокращении) показывает, что
cout << numeric_limits<float>::digits10 <<endl;
float f = (float)99999999; // 8 digits
cout.precision ( 10 );
cout << "The float is; " << f << endl;
печать
6
The float is; 100000000