std::numeric_limits::digits10
Da 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. |
staticconstint digits10 | (até C++11) | |
staticconstexprint digits10 | (desde C++11) | |
O valor de std::numeric_limits<T>::digits10 é o número de base-10 dígitos, que pode ser representado pela
10(radix) e arredondado para baixo.
T
tipo sem alteração, isto é, qualquer número com este número de dígitos decimais pode ser convertido para um valor de T
tipo e de volta para a forma decimal, sem alteração devido ao arredondamento ou extravasamento. Para radix tipos-base, que é o valor de digits (digits-1 para tipos de ponto flutuante) multiplicado por log10(radix) e arredondado para baixo.
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.
[editar]Especializações padrão
T | valor 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) |
signedchar | std::numeric_limits<signedchar>::digits*std::log10(2) |
unsignedchar | std::numeric_limits<unsignedchar>::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) |
unsignedshort | std::numeric_limits<signedshort>::digits*std::log10(2) |
int | std::numeric_limits<int>::digits*std::log10(2) |
unsignedint | std::numeric_limits<signedint>::digits*std::log10(2) |
long | std::numeric_limits<long>::digits*std::log10(2) |
unsignedlong | std::numeric_limits<unsignedlong>::digits*std::log10(2) |
longlong | std::numeric_limits<longlong>::digits*std::log10(2) |
unsignedlonglong | std::numeric_limits<unsignedlonglong>::digits*std::log10(2) |
float | FLT_DIG |
double | DBL_DIG |
longdouble | LDBL_DIG |
[editar]Exemplo
Um tipo binário de 8 bits pode representar qualquer número decimal de dois dígitos exatamente, mas três dígitos decimais 256.. 999 não pode ser representado.
digits10
O valor para um tipo de 8 bits é 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.
O padrão de 32 bits IEEE 754 tipo de ponto flutuante tem uma parte fracionária de 24 bits (23 bits por escrito, um implícito), o que pode sugerir que ele pode representar sete casas decimais dígitos (24*std::log10(2) é 7.22) , mas os erros de arredondamento relativos são não-uniforme e alguns valores de ponto flutuante, com 7 dígitos decimais não sobrevivem a conversão para 32-bit float e volta: o menor exemplo positivo é 8.589973e9, que se torna 8.589974e9 após a ida Esses erros de arredondamento não pode exceder. um pouco na representação, e
digits10
é calculado como (24-1)*std::log10(2), que é 6,92. arredondamento para baixo resulta no valor 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.
[editar]Veja também
[estática] | a raiz ou base inteiro usado pela representação do tipo de dado 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. (membro estático público constante) |
[estática] | número de dígitos radix que podem ser representadas sem alterações 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. (membro estático público constante) |
[estática] | mais um do que o menor poder negativo do radix que é um valor válido de ponto flutuante normalizado 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. (membro estático público constante) |
[estática] | um a mais que o maior poder inteiro da raiz que é um valor válido de ponto flutuante finita 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. (membro estático público constante) |