std:: nearbyint, std:: nearbyintf, std:: nearbyintl
|
Definido en el encabezado
<cmath>
|
||
| (1) | ||
|
float
nearbyint
(
float
num
)
;
double
nearbyint
(
double
num
)
;
|
(hasta C++23) | |
|
/*floating-point-type*/
nearbyint ( /*floating-point-type*/ num ) ; |
(desde C++23) | |
|
float
nearbyintf
(
float
num
)
;
|
(2) | (desde C++11) |
|
long
double
nearbyintl
(
long
double
num
)
;
|
(3) | (desde C++11) |
|
Sobrecarga SIMD
(desde C++26)
|
||
|
Definido en el encabezado
<simd>
|
||
|
template
<
/*math-floating-point*/
V
>
constexpr
/*deduced-simd-t*/
<
V
>
|
(S) | (desde C++26) |
|
Sobrecargas adicionales
(desde C++11)
|
||
|
Definido en el encabezado
<cmath>
|
||
|
template
<
class
Integer
>
double nearbyint ( Integer num ) ; |
(A) | |
std::nearbyint
para todos los tipos de punto flotante sin calificación cv como tipo del parámetro.
(desde C++23)
|
S)
La sobrecarga SIMD realiza un
std::nearbyint
elemento por elemento sobre
v_num
.
|
(desde C++26) |
|
A)
Se proporcionan sobrecargas adicionales para todos los tipos enteros, los cuales son tratados como
double
.
|
(since C++11) |
Contenidos |
Parámetros
| num | - | valor de punto flotante o entero |
Valor de retorno
El valor entero más cercano a num , de acuerdo con el modo de redondeo actual , es devuelto.
Manejo de errores
Esta función no está sujeta a ninguno de los errores especificados en math_errhandling .
Si la implementación soporta aritmética de punto flotante IEEE (IEC 60559),
- FE_INEXACT nunca se activa.
- Si num es ±∞, se devuelve sin modificaciones.
- Si num es ±0, se devuelve sin modificaciones.
- Si num es NaN, se devuelve NaN.
Notas
La única diferencia entre
std::nearbyint
y
std::rint
es que
std::nearbyint
nunca genera
FE_INEXACT
.
Los valores de punto flotante más grandes representables son enteros exactos en todos los formatos estándar de punto flotante, por lo que
std::nearbyint
nunca desborda por sí mismo; sin embargo, el resultado puede desbordar cualquier tipo entero (incluyendo
std::intmax_t
), cuando se almacena en una variable entera.
Si el modo de redondeo actual es FE_TONEAREST , esta función redondea al par en casos intermedios (como std::rint , pero a diferencia de std::round ).
Las sobrecargas adicionales no requieren ser proporcionadas exactamente como (A) . Solo necesitan ser suficientes para garantizar que para su argumento num de tipo entero, std :: nearbyint ( num ) tenga el mismo efecto que std :: nearbyint ( static_cast < double > ( num ) ) .
Ejemplo
#include <cfenv> #include <cmath> #include <iostream> #pragma STDC FENV_ACCESS ON int main() { std::fesetround(FE_TONEAREST); std::cout << "redondeo al más cercano: \n" << "nearbyint(+2.3) = " << std::nearbyint(2.3) << " nearbyint(+2.5) = " << std::nearbyint(2.5) << " nearbyint(+3.5) = " << std::nearbyint(3.5) << '\n' << "nearbyint(-2.3) = " << std::nearbyint(-2.3) << " nearbyint(-2.5) = " << std::nearbyint(-2.5) << " nearbyint(-3.5) = " << std::nearbyint(-3.5) << '\n'; std::fesetround(FE_DOWNWARD); std::cout << "redondeo hacia abajo:\n" << "nearbyint(+2.3) = " << std::nearbyint(2.3) << " nearbyint(+2.5) = " << std::nearbyint(2.5) << " nearbyint(+3.5) = " << std::nearbyint(3.5) << '\n' << "nearbyint(-2.3) = " << std::nearbyint(-2.3) << " nearbyint(-2.5) = " << std::nearbyint(-2.5) << " nearbyint(-3.5) = " << std::nearbyint(-3.5) << '\n'; std::cout << "nearbyint(-0.0) = " << std::nearbyint(-0.0) << '\n' << "nearbyint(-Inf) = " << std::nearbyint(-INFINITY) << '\n'; }
Salida:
redondeo al más cercano: nearbyint(+2.3) = 2 nearbyint(+2.5) = 2 nearbyint(+3.5) = 4 nearbyint(-2.3) = -2 nearbyint(-2.5) = -2 nearbyint(-3.5) = -4 redondeo hacia abajo: nearbyint(+2.3) = 2 nearbyint(+2.5) = 2 nearbyint(+3.5) = 3 nearbyint(-2.3) = -3 nearbyint(-2.5) = -3 nearbyint(-3.5) = -4 nearbyint(-0.0) = -0 nearbyint(-Inf) = -inf
Véase también
|
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
|
entero más cercano usando el modo de redondeo actual con
excepción si el resultado difiere (función) |
|
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
|
entero más cercano, redondeando alejándose de cero en casos intermedios
(función) |
|
(C++11)
(C++11)
|
obtiene o establece la dirección de redondeo
(función) |
|
Documentación de C
para
nearbyint
|
|