FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW, FE_UNDERFLOW, FE_ALL_EXCEPT
Da cppreference.com
![]() | This page has been machine-translated from the English version of the wiki using Google Translate. The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
Definido no cabeçalho <cfenv> | ||
#define FE_DIVBYZERO /*implementation defined power of 2*/ | (desde C++11) | |
#define FE_INEXACT /*implementation defined power of 2*/ | (desde C++11) | |
#define FE_INVALID /*implementation defined power of 2*/ | (desde C++11) | |
#define FE_OVERFLOW /*implementation defined power of 2*/ | (desde C++11) | |
#define FE_UNDERFLOW /*implementation defined power of 2*/ | (desde C++11) | |
#define FE_ALL_EXCEPT FE_DIVBYZERO | FE_INEXACT | \ FE_INVALID | FE_OVERFLOW | \ | (desde C++11) | |
Todas essas constantes macro (exceto FE_ALL_EXCEPT) expandir para inteiros expressões constantes que são potências distintas de 2, que identificam todas as suportadas exceções de ponto flutuante. Cada macro é definida somente se for suportado.
Original:
All these macro constants (except FE_ALL_EXCEPT) expand to integer constant expressions that are distinct powers of 2, which uniquely identify all supported floating-point exceptions. Each macro is only defined if it is supported.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
O FE_ALL_EXCEPT macro constante, que se expande para o OR bit a bit de todos
FE_*
outro, é sempre definida e é zero se exceções de ponto flutuante não são suportados pela implementação.Original:
The macro constant FE_ALL_EXCEPT, which expands to the bitwise OR of all other
FE_*
, is always defined and is zero if floating-point exceptions are not supported by the implementation.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Constante Original: Constant The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | Explanation |
FE_DIVBYZERO | divisão por zero ocorreu durante a operação antes de ponto flutuante Original: division by zero occurred during the earlier floating-point operation The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
FE_INEXACT | inexato resultado: arredondamento era necessário para armazenar o resultado da operação anterior de ponto flutuante Original: inexact result: rounding was necessary to store the result of the earlier floating-point operation The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
FE_INVALID | operação inválida: a operação antes de ponto flutuante não poderia realizada Original: invalid operation: the earlier floating-point operation could not performed The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
FE_OVERFLOW | o resultado da operação de ponto flutuante anterior era grande demais para ser representável Original: the result of the earlier floating-point operation was too large to be representable The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
FE_UNDERFLOW | o resultado da operação anterior de ponto flutuante foi subnormal Original: the result of the earlier floating-point operation was subnormal The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
FE_ALL_EXCEPT | OR bit a bit de todas as exceções de ponto flutuante Original: bitwise OR of all supported floating-point exceptions The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
A implementação pode definir constantes macro adicionais em
<cfenv>
para identificar outras exceções de ponto flutuante. Todas as constantes de tais começam com FE_
seguido por, pelo menos, uma letra maiúscula.Original:
The implementation may define additional macro constants in
<cfenv>
to identify additional floating-point exceptions. All such constants begin with FE_
followed by at least one uppercase letter.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[editar]Exemplo
#include <iostream>#include <cfenv>#include <cmath> #pragma STDC FENV_ACCESS ON volatiledouble zero =0.0;// volatile not needed where FENV_ACCESS is supportedvolatiledouble one =1.0;// volatile not needed where FENV_ACCESS is supported int main(){std::feclearexcept(FE_ALL_EXCEPT);std::cout<<"1.0/0.0 = "<<1.0/ zero <<'\n';if(std::fetestexcept(FE_DIVBYZERO)){std::cout<<"division by zero reported\n";}else{std::cout<<"divsion by zero not reported\n";} std::feclearexcept(FE_ALL_EXCEPT);std::cout<<"1.0/10 = "<< one/10<<'\n';if(std::fetestexcept(FE_INEXACT)){std::cout<<"inexact result reported\n";}else{std::cout<<"inexact result not reported\n";} std::feclearexcept(FE_ALL_EXCEPT);std::cout<<"sqrt(-1) = "<<std::sqrt(-1)<<'\n';if(std::fetestexcept(FE_INVALID)){std::cout<<"invalid result reported\n";}else{std::cout<<"invalid result not reported\n";}}
Saída:
1.0/0.0 = inf division by zero reported 1.0/10 = 0.1 inexact result reported sqrt(-1) = -nan invalid result reported
[editar]Veja também
(C++11) (C++11) (C++11) | define o mecanismo de tratamento de erros usado pelas funções matemáticas comuns Original: defines the error handling mechanism used by the common mathematical functions The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (macro constante) |