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

FE_DOWNWARD, FE_TONEAREST, FE_TOWARDZERO, FE_UPWARD

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

 
 
 
Среда вещественной арифметики
Функции
(C++11)(C++11)
(C++11)(C++11)
Макро-константы
FE_DOWNWARDFE_TONEARESTFE_TOWARDZEROFE_UPWARD
(C++11)(C++11)(C++11)(C++11)
(C++11)
 
Определено в заголовочном файле <cfenv>
#define FE_DOWNWARD     /*implementation defined*/
(начиная с C++11)
#define FE_TONEAREST    /*implementation defined*/
(начиная с C++11)
#define FE_TOWARDZERO   /*implementation defined*/
(начиная с C++11)
#define FE_UPWARD       /*implementation defined*/
(начиная с C++11)
Каждый из этих макросов константы расширяется до неотрицательное целочисленное постоянное выражение, которое может использоваться с меня std::fesetround и std::fegetround, чтобы указать один из поддерживаемых плавающей точкой, режимы округления. Реализация может определить дополнительные константы режима округления в <cfenv>, которые должны все начинать с FE_ следуют по крайней мере одной заглавной буквы. Каждый макрос определен только если она поддерживается.
Оригинал:
Each of these macro constants expands to a nonnegative integer constant expression, which can me used with std::fesetround and std::fegetround to indicate one of the supported floating-point rounding modes. The implementation may define additional rounding mode constants in <cfenv>, which should all begin with FE_ followed by at least one uppercase letter. Each macro is only defined if it is supported.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
В большинстве реализаций этих макро константы расширить до значений, равных значениях FLT_ROUNDS и std::float_round_style
Оригинал:
On most implementations, these macro constants expand to the values equal to the values of FLT_ROUNDS and std::float_round_style
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Constant
Оригинал:
Constant
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Explanation
FE_DOWNWARD
округление к минус бесконечности
Оригинал:
rounding towards negative infinity
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
FE_TONEAREST
округления к ближайшему целому
Оригинал:
rounding towards nearest integer
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
FE_TOWARDZERO
округление к нулю
Оригинал:
rounding towards zero
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
FE_UPWARD
округление к плюс бесконечности
Оригинал:
rounding towards positive infinity
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Дополнительные режимы округления может быть поддержана реализация.
Оригинал:
Additional rounding modes may be supported by an implementation.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

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

#include <cmath>#include <cfenv>#include <iostream>   int main(){#pragma STDC FENV_ACCESS ONstd::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)
получает или устанавливает направление округления
(функция)[править]
close