rint
, , rintf
, rintl
Redondea un valor de punto flotante al entero más cercano en el formato de punto flotante.
Sintaxis
double rint( double x );
float rintf( float x );
long double rintl( long double x );
#define rint(X) // Requires C11 or higher
float rint( float x ); // C++ only
long double rint( long double x ); // C++ only
Parámetros
x
Valor de punto flotante que se va a redondear.
Valor devuelto
Las funciones rint
devuelven un valor de punto flotante que representa el entero más cercano a x
. Los valores a medio camino se redondean en función de la configuración actual del modo de redondeo de puntos flotantes, al igual que las funciones nearbyint
. Al contrario de lo que sucede con las funciones nearbyint
, las funciones rint
pueden generar la excepción de punto flotante FE_INEXACT
si el valor del resultado es distinto del argumento. No se devuelve ningún error.
Entrada | Excepción SEH | Excepción de _matherr |
---|---|---|
± INF, QNaN, IND | None | None |
Desnormalizados | EXCEPTION_FLT_UNDERFLOW |
None |
Comentarios
Puesto que C++ permite las sobrecargas, es posible llamar a las sobrecargas de rint
que toman y devuelven los valores float
y long double
. En un programa de C, a menos que use la macro de <tgmath.h> para llamar a esta función, rint
siempre toma y devuelve un double
.
Si usa la macro <tgmath.h>rint()
, el tipo del argumento determina qué versión de la función se selecciona. Consulte Matemáticas de tipo genérico para obtener más información.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Requisitos
Función | Encabezado C | Encabezado C++ |
---|---|---|
rint , , rintf , rintl |
<math.h> | <cmath> |
rint Macro |
<tgmath.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// crt_rint.c
// Build with: cl /W3 /Tc crt_rint.c
// This example displays the rounded results of
// the floating-point values 2.499999, -2.499999,
// 2.8, -2.8, 2.5 and -2.5.
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 2.499999;
float y = 2.8f;
long double z = 2.5;
printf("rint(%f) is %.0f\n", x, rint (x));
printf("rint(%f) is %.0f\n", -x, rint (-x));
printf("rintf(%f) is %.0f\n", y, rintf(y));
printf("rintf(%f) is %.0f\n", -y, rintf(-y));
printf("rintl(%Lf) is %.0Lf\n", z, rintl(z));
printf("rintl(%Lf) is %.0Lf\n", -z, rintl(-z));
}
rint(2.499999) is 2
rint(-2.499999) is -2
rintf(2.800000) is 3
rintf(-2.800000) is -3
rintl(2.500000) is 3
rintl(-2.500000) is -3
Vea también
Compatibilidad con cálculos matemáticos y el punto flotante
ceil
, , ceilf
, ceill
floor
, , floorf
, floorl
fmod
, fmodf
lrint
, lrintf
, lrintl
, llrint
, , llrintf
, llrintl
lround
, lroundf
, lroundl
, llround
, , llroundf
, llroundl
nearbyint
, , nearbyintf
, nearbyintl
rint