Espacios de nombres
Variantes
Acciones

std::nearbyint, std::nearbyintf, std::nearbyintl

De cppreference.com
< cpp‎ | numeric‎ | math
 
 
 
Funciones matemáticas comunes
Funciones
Operaciones básicas
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Funciones exponenciales
(C++11)
(C++11)
(C++11)
(C++11)
Funciones de potencias
(C++11)
(C++11)
Funciones trigonométricas e hiperbólicas
(C++11)
(C++11)
(C++11)
Funciones de error y gamma
(C++11)
(C++11)
(C++11)
(C++11)
Operaciones de punto flotante del entero más cercano
(C++11)(C++11)(C++11)
(C++11)
nearbyint
(C++11)
(C++11)(C++11)(C++11)
Funciones de manipulación de punto flotante
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
Clasificación/comparación
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Constantes de macro
(C++11)(C++11)(C++11)(C++11)(C++11)
 
Definido en el archivo de encabezado <cmath>
float       nearbyint ( float arg );
float       nearbyintf( float arg );
(1) (desde C++11)
double      nearbyint ( double arg );
(2) (desde C++11)
long double nearbyint ( long double arg );
long double nearbyintl( long double arg );
(3) (desde C++11)
double      nearbyint ( TipoEntero arg );
(4) (desde C++11)
1-3) Redondea el argumento de punto flotante arg a un valor entero en formato de punto flotante, usando el modo de redondeo actual.
4) Un conjunto de sobrecargas o una plantilla de función que acepta un argumento de cualquier tipo entero. Equivalente a (2) (el argumento se convierte a double).

Contenido

[editar] Parámetros

arg - Valor de punto flotante.

[editar] Valor de retorno

El valor entero más cercano a arg, según el modo de redondeo actual.

[editar] Manejo de errores

Esta función no está sujeta a ninguno de los errores especificados en math_errhandling.

Si la implementación admite la aritmética de punto flotante IEEE (IEC 60559):

  • Nunca se genera FE_INEXACT.
  • Si arg es +∞, se devuelve +∞.
  • Si arg es -∞, se devuelve -∞.
  • Si arg es +0, se devuelve +0.
  • Si arg es -0, se devuelve -0.
  • Si arg es NaN, se devuelve NaN.

[editar] Notas

La única diferencia entre std::nearbyint y std::rint es que std::nearbyint nunca genera FE_INEXACT.

Los valores de punto flotante representables más grandes son enteros exactos en todos los formatos de punto flotante estándar, por lo que std::nearbyint nunca se desborda por sí solo; sin embargo, el resultado puede desbordar cualquier tipo de entero (incluido std::intmax_t), cuando se almacena en una variable entera.

Si el modo de redondeo actual es FE_TONEAREST, esta función redondea a par en la mitad de los casos (como rint, pero a diferencia de round).

[editar] Ejemplo

#include <iostream>
#include <cmath>
#include <cfenv>
 
int main()
{
#pragma STDC FENV_ACCESS ON
    std::fesetround(FE_TONEAREST);
    std::cout << "redondeando 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 << "redondeando 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:

redondeando 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
redondeando 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

[editar] 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) [editar]
(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 los casos intermedios
(función) [editar]
(C++11)(C++11)
Obtiene o establece la dirección redondeo
(función) [editar]
Documentación de C para nearbyint