fegetround, fesetround
Obtém ou define o modo de arredondamento de ponto flutuante atual.
Sintaxe
int fegetround(void);
int fesetround(
int round_mode
);
Parâmetros
round_mode
O modo de arredondamento a ser definido, como as macros de arredondamento de ponto flutuante. Se o valor não for igual a uma das macros de arredondamento de ponto flutuante, o modo de arredondamento não será alterado.
Valor Retornado
Em caso de sucesso, fegetround retorna o modo de arredondamento como um dos valores de macro de arredondamento de ponto flutuante. Ele retornará um valor negativo se o modo de arredondamento atual não puder ser determinado.
Em caso de sucesso, fesetround retorna 0. Caso contrário, será retornado um valor diferente de zero.
Comentários
As operações de ponto flutuante podem usar um dos vários modos de arredondamento. Elas controlam a direção em que os resultados de operações de ponto flutuante são arredondados quando os resultados são armazenados. Estes são os nomes e comportamentos das macros de arredondamento de ponto flutuante definidas em < fenv. h > :
Macro | Descrição |
---|---|
FE_DOWNWARD | Arredondar para o infinito negativo. |
FE_TONEAREST | Arredondar para o mais próximo. |
FE_TOWARDZERO | Arredondar para zero. |
FE_UPWARD | Arredondar para o infinito positivo. |
O comportamento padrão de FE_TONEAREST é arredondar resultados entre valores representáveis para obter o valor mais próximo com um bit menos significativo (0).
O modo de arredondamento atual afeta essas operações:
Conversões de cadeia de caracteres.
Os resultados de operadores aritméticos de ponto flutuante fora das expressões constantes.
As funções de arredondamento de biblioteca, como rimir e nearbyint.
Valores de retorno de funções matemáticas da biblioteca padrão.
O modo de arredondamento atual não afeta essas operações:
As funções de biblioteca truncar, Ceil, Floore Lround .
Ponto flutuante para conversões e transmissões implícitas de inteiro, que sempre arredondam em direção a zero.
Os resultados dos operadores aritméticos de ponto flutuante em expressões de constante, que sempre são arredondados para o valor mais próximo.
Para usar essas funções, você deve desligar otimizações de ponto flutuante que poderiam impedir o acesso usando a diretiva #pragma fenv_access(on)
antes da chamada. Para obter mais informações, consulte fenv_access.
Requisitos
Função | Cabeçalho C | Cabeçalho C++ |
---|---|---|
fegetround, fesetround | <fenv. h> | <cfenv> |
Para obter mais informações sobre compatibilidade, consulte Compatibilidade.
Consulte também
Referência de função alfabética
nearbyint, nearbyintf, nearbyintl
rint, rintf, rintl
lrint, lrintf, lrintl, llrint, llrintf, llrintl