std::numeric_limits::digits10
De cppreference.com
< cpp | types | numeric limits
![]() |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
static const int digits10 |
(avant C++11) | |
static constexpr int digits10 |
(depuis C++11) | |
La valeur de std::numeric_limits<T>::digits10 est le nombre de base de-10 chiffres pouvant être représenté par la
10(radix) et arrondi vers le bas .
T
type sans changement, c'est-à-tout nombre de chiffres à ce décimales peut être converti en une valeur de T
type et revenir à la forme décimale, sans changement en raison de l'arrondissement ou de débordement. Pour de bases radix types, c'est la valeur de digits (digits-1 de types à virgule flottante) multiplié par log10(radix) et arrondi vers le bas .
Original:
The value of std::numeric_limits<T>::digits10 is the number of base-10 digits that can be represented by the type
10(radix) and rounded down.
T
without change, that is, any number with this many decimal digits can be converted to a value of type T
and back to decimal form, without change due to rounding or overflow. For base-radix types, it is the value of digits (digits-1 for floating-point types) multiplied by log10(radix) and rounded down.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[modifier] Spécialisations standard
T
|
valeur de std::numeric_limits<T>::digits10
Original: value of std::numeric_limits<T>::digits10 The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
/* non-specialized */ | 0 |
bool | 0 |
char | std::numeric_limits<char>::digits * std::log10(2) |
signed char | std::numeric_limits<signed char>::digits * std::log10(2) |
unsigned char | std::numeric_limits<unsigned char>::digits * std::log10(2) |
wchar_t | std::numeric_limits<wchar_t>::digits * std::log10(2) |
char16_t | std::numeric_limits<char16_t>::digits * std::log10(2) |
char32_t | std::numeric_limits<char32_t>::digits * std::log10(2) |
short | std::numeric_limits<short>::digits * std::log10(2) |
unsigned short | std::numeric_limits<signed short>::digits * std::log10(2) |
int | std::numeric_limits<int>::digits * std::log10(2) |
unsigned int | std::numeric_limits<signed int>::digits * std::log10(2) |
long | std::numeric_limits<long>::digits * std::log10(2) |
unsigned long | std::numeric_limits<unsigned long>::digits * std::log10(2) |
long long | std::numeric_limits<long long>::digits * std::log10(2) |
unsigned long long | std::numeric_limits<unsigned long long>::digits * std::log10(2) |
float | FLT_DIG |
double | DBL_DIG |
long double | LDBL_DIG |
[modifier] Exemple
Un type binaire 8-bit peut représenter n'importe quel nombre décimal à deux chiffres exactement, mais à 3 chiffres décimaux 256 .. 999 ne peut pas être représenté. La valeur de
digits10
pour un type 8-bit est 2 (8 * std::log10(2) vaut 2.41)Original:
An 8-bit binary type can represent any two-digit decimal number exactly, but 3-digit decimal numbers 256..999 cannot be represented. The value of
digits10
for an 8-bit type is 2 (8 * std::log10(2) is 2.41)The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
La norme 32 bits IEEE 754 type en virgule flottante a une partie fractionnaire 24 bits (23 bits par écrit, un sous-entendu), ce qui pourrait suggérer qu'il puisse représenter le 7 décimales (chiffres 24 * std::log10(2) est 7.22) , mais des erreurs d'arrondi relatives ne sont pas uniformes et certaines valeurs à virgule flottante avec 7 chiffres après la virgule ne survivent pas à la conversion en 32-bit float et à l'arrière: le plus petit exemple positif est 8.589973e9, qui devient 8.589974e9 après l'aller-retour Ces erreurs d'arrondi ne peut pas dépasser. un bit dans la représentation, et
digits10
est calculé comme (24-1)*std::log10(2), qui est 6.92. arrondi à la baisse des résultats de la valeur 6 .Original:
The standard 32-bit IEEE 754 floating-point type has a 24 bit fractional part (23 bits written, one implied), which may suggest that it can represent 7 digit decimals (24 * std::log10(2) is 7.22), but relative rounding errors are non-uniform and some floating-point values with 7 decimal digits do not survive conversion to 32-bit float and back: the smallest positive example is 8.589973e9, which becomes 8.589974e9 after the roundtrip. These rounding errors cannot exceed one bit in the representation, and
digits10
is calculated as (24-1)*std::log10(2), which is 6.92. Rounding down results in the value 6.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[modifier] Voir aussi
[ statique ]Original: static The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
la base ou la base utilisée par nombre entier de la représentation du type donné Original: the radix or integer base used by the representation of the given type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (constante membre statique publique) |
[ statique ]Original: static The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
nombre de chiffres radix qui peuvent être représentées sans changement Original: number of radix digits that can be represented without change The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (constante membre statique publique) |
[ statique ]Original: static The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
un de plus que la plus petite puissance négative de la racine qui est valide normalisé valeur à virgule flottante Original: one more than the smallest negative power of the radix that is a valid normalized floating-point value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (constante membre statique publique) |
[ statique ]Original: static The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
un de plus que la plus grande puissance entière de la racine qui est valide finie valeur à virgule flottante Original: one more than the largest integer power of the radix that is a valid finite floating-point value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (constante membre statique publique) |