std::numeric_limits::digits10
Da cppreference.com.
< cpp | types | numeric limits
![]() |
Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate.
La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
static const int digits10 |
(fino al c++11) | |
static constexpr int digits10 |
(dal C++11) | |
Il valore std::numeric_limits<T>::digits10 è il numero di base 10 cifre che può essere rappresentato dal tipo
10(radix) e arrotondato verso il basso.
T
senza cambiamento, cioè, qualsiasi con questo numero di molte cifre decimali può essere convertito in un valore di tipo T
e ritorno alla forma decimale, senza modifiche a causa degli arrotondamenti o troppo pieno. Per base-radix tipi, è il valore di digits (digits-1 per tipi a virgola mobile) moltiplicato da log10(radix) e arrotondato verso il basso.
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.
[modifica] Specializzazioni standard
T
|
valore di 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 |
[modifica] Esempio
a 8 bit tipo binario può rappresentare qualsiasi numero di due cifre decimali esattamente, ma i numeri a 3 cifre decimali 256.. 999 non può essere rappresentato. Il valore di
digits10
per un 8 bit tipo è 2 (8 * std::log10(2) è 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.
Lo standard a 32 bit IEEE 754 in virgola mobile di tipo ha una parte frazionaria a 24 bit (23 bit scritto, una implicita), che può suggerire che può rappresentare sette cifre decimali (24 * std::log10(2) è 7.22) , ma gli errori di arrotondamento relativi non sono uniformi e alcuni valori a virgola mobile con 7 cifre decimali non sopravvivono conversione a 32-bit a virgola mobile e viceversa: il più piccolo esempio positivo è 8.589973e9, che diventa 8.589974e9 dopo l'andata e ritorno Questi errori di arrotondamento non può superare. un bit nella rappresentazione, e
digits10
è calcolato come (24-1)*std::log10(2), che è 6.92. arrotondamento verso il basso risulta il valore 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.
[modifica] Vedi anche
[statico] |
la radice o base intero utilizzato dalla rappresentazione del tipo specificato 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. (pubblico membro statico costante) |
[statico] |
numero di cifre radix che possono essere rappresentati senza cambiamenti 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. (pubblico membro statico costante) |
[statico] |
oltre la più piccola potenza negativa della radice che è una valida virgola mobile normalizzato valore uno 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. (pubblico membro statico costante) |
[statico] |
maggiore della massima potenza intera della radice che è una valida finita valore a virgola mobile uno 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. (pubblico membro statico costante) |