Espacios de nombres
Variantes

std::numeric_limits::round_style

De cppreference.com
 
 
Biblioteca de servicios
 
Apoyo de tipos
Tipos básicos
Tipos fundamentales
Tipos enteros de anchura fija (C++11)
Límites numéricos
Interfaz de C de límites numéricos
Información de tipo
en tiempo de ejecución
Rasgos de tipos
Categorías de tipos
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Propiedades de tipos
(C++11)
(C++11)
(C++14)
(C++11)
(C++11)(hasta C++20)
(C++11)(en desuso en C++20)
(C++11)
Constantes de rasgos de tipos
Metafunciones
(C++17)
Contexto de evaluación constante
Operaciones soportadas
Relaciones y consultas de propiedades
Modificaciones de tipos
(C++11)(C++11)(C++11)
Transformaciones de tipos
(C++11)
(C++11)
(C++17)
(C++11)(hasta C++20)(C++17)
 
std::numeric_limits
 
<tbody> </tbody>
static const std::float_round_style round_style
(hasta C++11)
static constexpr std::float_round_style round_style
(desde C++11)
El valor de std::numeric_limits<T>::round_stylem identifica el estilo redondeo utilizado por el T tipo de punto flotante siempre que un valor que no es uno de los valores exactamente repesentable de T se almacena en un objeto de ese tipo .
Original:
The value of std::numeric_limits<T>::round_stylem identifies the rounding style used by the floating-point type T whenever a value that is not one of the exactly repesentable values of T is stored in an object of that type.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Especializaciones estándar

T
valor de std::numeric_limits<T>::round_style
Original:
value of std::numeric_limits<T>::round_style
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
/* non-specialized */ std::round_toward_zero
bool std::round_toward_zero
char std::round_toward_zero
signed char std::round_toward_zero
unsigned char std::round_toward_zero
wchar_t std::round_toward_zero
char16_t std::round_toward_zero
char32_t std::round_toward_zero
short std::round_toward_zero
unsigned short std::round_toward_zero
int std::round_toward_zero
unsigned int std::round_toward_zero
long std::round_toward_zero
unsigned long std::round_toward_zero
long long std::round_toward_zero
unsigned long long std::round_toward_zero
float
por lo general std::round_to_nearest
Original:
usually std::round_to_nearest
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
double
por lo general std::round_to_nearest
Original:
usually std::round_to_nearest
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
long double
por lo general std::round_to_nearest
Original:
usually std::round_to_nearest
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Ejemplo

El 0.1 valor decimal no se puede representar por un binario de punto flotante tipo. Cuando se almacena en un puerto IEEE-745 double, cae entre 0x1.9999999999999*2-4
y 0x1.999999999999a*2-4
. Redondeo a los próximos resultados del valor representable en 0x1.999999999999a*2-4
.
Original:
The decimal value 0.1 cannot be represented by a binary floating-point type. When stored in an IEEE-745 double, it falls between 0x1.9999999999999*2-4
and 0x1.999999999999a*2-4
. Rounding to nearest representable value results in 0x1.999999999999a*2-4
.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
De manera similar, el valor decimal 0,3, que es entre 0x1.3333333333333*2-2
y 0x1.3333333333334*2-2
se redondea más cercano a y se almacena como 0x1.3333333333333*2-2
.
Original:
Similarly, the decimal value 0.3, which is between 0x1.3333333333333*2-2
and 0x1.3333333333334*2-2
is rounded to nearest and is stored as 0x1.3333333333333*2-2
.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
#include <iostream>
#include <limits>
int main()
{
    std::cout << std::hexfloat << "The decimal 0.1 is stored in a double as "
              << 0.1 << '\n'
              << "The decimal 0.3 is stored in a double as "
              << 0.3 << '\n'
              << "The rounding style is " << std::numeric_limits<double>::round_style << '\n';
}

Salida:

The decimal 0.1 is stored in a double as 0x1.999999999999ap-4
The decimal 0.3 is stored in a double as 0x1.3333333333333p-2
The rounding style is 1

Ver también

Indica modalidades de redondeo de punto flotante.
(enum) [editar]