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. |
<metanoindex/>
<tbody> </tbody>| 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 | \ FE_UNDERFLOW |
(seit C++11) | |
All diese Makro-Konstanten (auer FE_ALL_EXCEPT) auf ganzzahlige konstante Ausdrcke, die verschiedenen Potenzen von 2, die eindeutig zu identifizieren alle untersttzten Gleitkomma-Ausnahmen sind zu erweitern. Jedes Makro wird nur definiert, wenn sie untersttzt 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 untersttzt 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 whrend der frheren 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 frheren 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
|
ungltige Operation: je frher Floating-Point-Operation konnte nicht ausgefhrt
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 frheren 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 frheren 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-Verknpfung aller untersttzten Fliekomma-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 zustzliche Makro-Konstanten in
<cfenv> definieren, um zustzliche Floating-Point-Ausnahmen zu ermitteln. Alle solche Konstanten beginnen mit FE_ von mindestens einem Grobuchstaben 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.
Beispiel
#include <iostream>
#include <cfenv>
#include <cmath>
#pragma STDC FENV_ACCESS ON
volatile double zero = 0.0; // volatile not needed where FENV_ACCESS is supported
volatile double 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
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) |