rint, rintf, rintl
Округляет значение с плавающей запятой до ближайшего целого числа в формате с плавающей запятой.
double rint( double x );
float rint( float x ); // C++ only
long double rint( long double x ); // C++ only
float rintf( float x );
long double rintl( long double x );
Параметры
- x
Округляемое значение с плавающей запятой.
Возвращаемое значение
Функции rint возвращают значение с плавающей запятой, которое представляет целое число, ближайшее к x. Промежуточные значения округляются согласно текущей настройке режима округления чисел с плавающей запятой (аналогично функциям nearbyint). В отличие от функций nearbyint функции rint могут вызывать исключение числа с плавающей запятой FE_INEXACT, если значение результата отличается от аргумента. Ошибка не возвращается.
Ввод |
Исключение SEH |
Исключение _matherr |
---|---|---|
± ∞, QNAN, IND |
Нет |
Нет |
Денормализованные числа |
EXCEPTION_FLT_UNDERFLOW |
Нет |
Заметки
Поскольку C++ допускает перегрузку, можно вызывать перегрузки rint, которые принимают и возвращают значения float и long double. В программе на языке C rint всегда принимает и возвращает double.
Требования
Функция |
Заголовок C |
Заголовок C++ |
---|---|---|
rint, rintf, rintl |
<math.h> |
<cmath> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// 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));
}
Эквивалент в .NET Framework
См. также
Ссылки
Поддержка чисел с плавающей запятой
lround, lroundf, lroundl, llround, llroundf, llroundl