FE_DIVBYZERO, FE_INEXACT, FE_INVALID, FE_OVERFLOW, FE_UNDERFLOW, FE_ALL_EXCEPT
Aus 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. |
definiert in Header <cfenv> | ||
#define FE_DIVBYZERO /*implementation defined power of 2*/ | (seit C++11) | |
#define FE_INEXACT /*implementation defined power of 2*/ | (seit C++11) | |
#define FE_INVALID /*implementation defined power of 2*/ | (seit C++11) | |
#define FE_OVERFLOW /*implementation defined power of 2*/ | (seit C++11) | |
#define FE_UNDERFLOW /*implementation defined power of 2*/ | (seit C++11) | |
#define FE_ALL_EXCEPT FE_DIVBYZERO | FE_INEXACT | \ FE_INVALID | FE_OVERFLOW | \ | (seit C++11) | |
All diese Makro-Konstanten (außer FE_ALL_EXCEPT) auf ganzzahlige konstante Ausdrücke, die verschiedenen Potenzen von 2, die eindeutig zu identifizieren alle unterstützten Gleitkomma-Ausnahmen sind zu erweitern. Jedes Makro wird nur definiert, wenn sie unterstützt wird .
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.
Die Makro konstanten FE_ALL_EXCEPT, die der bitweisen ODER aller anderen
FE_*
ausdehnt, wird immer definiert und ist Null, wenn Gleitkomma-Ausnahmen nicht durch die Implementierung unterstützt werden .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.
Constant 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 | Division durch Null aufgetreten während der früheren Floating-Point-Betrieb 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 | ungenauen Ergebnis: Rundung war notwendig, um das Ergebnis der früheren Gleitkommaoperation speichern 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 | ungültige Operation: je früher Floating-Point-Operation konnte nicht ausgeführt 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 | das Ergebnis des früheren Gleitkomma-Operation war zu groß, um darstellbar sein 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 | das Ergebnis des früheren Gleitkomma-Operation war 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 | ODER-Verknüpfung aller unterstützten Fließkomma-Ausnahmen 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. |
Die Implementierung kann zusätzliche Makro-Konstanten in
<cfenv>
definieren, um zusätzliche Floating-Point-Ausnahmen zu ermitteln. Alle solche Konstanten beginnen mit FE_
von mindestens einem Großbuchstaben gefolgt .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.
[Bearbeiten]Beispiel
#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";}}
Output:
1.0/0.0 = inf division by zero reported 1.0/10 = 0.1 inexact result reported sqrt(-1) = -nan invalid result reported
[Bearbeiten]Siehe auch
(C++11) (C++11) (C++11) | definiert die Fehlerbehandlung durch die üblichen mathematischen Funktionen verwendet 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. (Makro konstant) |