Пространства имён
Варианты
Действия

std::nearbyint

Материал из cppreference.com
< cpp‎ | numeric‎ | math

 
 
 
Общие математические функции
Функции
Основные операции
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Экспоненциальные функции
(C++11)
(C++11)
(C++11)
(C++11)
Степенные функции
(C++11)
(C++11)
Тригонометрические и гиперболические функции
(C++11)
(C++11)
(C++11)
Ошибка и гамма функции
(C++11)
(C++11)
(C++11)
(C++11)
Операции целочисленного округления с плавающей запятой
(C++11)(C++11)(C++11)
(C++11)
nearbyint
(C++11)
(C++11)(C++11)(C++11)
Функции манипуляции с плавающей запятой
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
Классификация/Сравнение
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Макро-константы
(C++11)(C++11)(C++11)(C++11)(C++11)
 
Определено в заголовочном файле <cmath>
float       nearbyint( float arg );
(начиная с C++11)
double      nearbyint( double arg );
(начиная с C++11)
long double nearbyint( long double arg );
(начиная с C++11)
double      nearbyint( Integral arg );
(начиная с C++11)
Раундов с плавающей точкой arg аргумент в целое число в формате с плавающей точкой, используя текущий режим округления.
Оригинал:
Rounds the floating-point argument arg to an integer value in floating-point format, using the current rounding mode.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

Содержание

[править] Параметры

arg
плавающей точкой
Оригинал:
floating point value
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Возвращаемое значение

Целое результате округления arg
Оригинал:
The integer result of rounding arg
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Заметки

Единственное различие между std::nearbyint и std::rint в том, что std::rint может поднять FE_INEXACT с плавающей точкой исключения, а std::nearbyint никогда не поднимает его.
Оригинал:
The only difference between std::nearbyint and std::rint is that std::rint may raise the FE_INEXACT floating-point exception, while std::nearbyint never raises it.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

[править] Пример

#include <cmath>
#include <cfenv>
#include <iostream>
 
int main()
{
    #pragma STDC FENV_ACCESS ON
    std::fesetround(FE_DOWNWARD);
    std::cout << "rounding using FE_DOWNWARD: \n" << std::fixed
              << " 12.0 ->  " << std::nearbyint(12.0) << '\n'
              << " 12.1 ->  " << std::nearbyint(12.1) << '\n'
              << "-12.1 -> " << std::nearbyint(-12.1) << '\n'
              << " 12.5 ->  " << std::nearbyint(12.5) << '\n'
              << " 12.9 ->  " << std::nearbyint(12.9) << '\n'
              << "-12.9 -> " << std::nearbyint(-12.9) << '\n'
              << " 13.0 ->  " << std::nearbyint(13.0) << '\n';
    std::fesetround(FE_TONEAREST);
    std::cout << "rounding using FE_TONEAREST: \n"
              << " 12.0 ->  " << std::nearbyint(12.0) << '\n'
              << " 12.1 ->  " << std::nearbyint(12.1) << '\n'
              << "-12.1 -> " << std::nearbyint(-12.1) << '\n'
              << " 12.5 ->  " << std::nearbyint(12.5) << '\n'
              << " 12.9 ->  " << std::nearbyint(12.9) << '\n'
              << "-12.9 -> " << std::nearbyint(-12.9) << '\n'
              << " 13.0 ->  " << std::nearbyint(13.0) << '\n';
}

Вывод:

rounding using FE_DOWNWARD:
 12.0 ->  12.000000
 12.1 ->  12.000000
-12.1 -> -13.000000
 12.5 ->  12.000000
 12.9 ->  12.000000
-12.9 -> -13.000000
 13.0 ->  13.000000
rounding using FE_TONEAREST:
 12.0 ->  12.000000
 12.1 ->  12.000000
-12.1 -> -12.000000
 12.5 ->  12.000000
 12.9 ->  13.000000
-12.9 -> -13.000000
 13.0 ->  13.000000

[править] См. также

(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)
ближайшее целое число с использованием текущего режима округления
с исключением, если результат отличается
(функция) [править]
(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)
ближайшее целое число, округление от нуля в промежуточных случаях
(функция) [править]
(C++11)(C++11)
получает или устанавливает направление округления
(функция) [править]