std::rint, std::lrint, std::llrint – cppreference.com
Aus cppreference.com
<metanoindex/>
<tbody> </tbody>
| definiert in Header <cmath> |
||
|
|
(seit C++11) | |
|
|
(seit C++11) | |
|
|
(seit C++11) | |
|
|
(seit C++11) | |
|
|
(seit C++11) | |
|
|
(seit C++11) | |
|
|
(seit C++11) | |
|
|
(seit C++11) | |
|
|
(seit C++11) | |
|
|
(seit C++11) | |
|
|
(seit C++11) | |
|
|
(seit C++11) | |
Rundet die Floating-Point-Argument arg auf einen ganzzahligen Wert in Floating-Point-Format, mit dem aktuellen Rundung Modus. Wenn das Ergebnis unterscheidet sich von arg (dh arg war kein ganzzahliger Wert schon), wird die Gleitkomma-Ausnahme FE_INEXACT angehoben .
Original:
Rounds the floating-point argument arg to an integer value in floating-point format, using the current rounding mode. If the result differs from arg (i.e., arg was not an integer value already), the floating-point exception FE_INEXACT is raised.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Parameter
| arg | - | Floating-Point-Wert Original: floating point value The text has been machine-translated via Google Translate. |
Rückgabewert
Das ganzzahlige Ergebnis der Rundung arg
Original:
The integer result of rounding arg
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Notes
Der einzige Unterschied zwischen std::nearbyint und std::rint ist, dass std::rint kann die FE_INEXACT Gleitkomma-Ausnahme zu erhöhen, während std::nearbyint wirft es nie .
Original:
The only difference between std::nearbyint and std::rint is that std::rint may raise the FE_INEXACT floating-point exception, while std::nearbyint never raises it.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Beispiel
#include <cmath> #include <cfenv> #include <iostream> int main() { #pragma STDC FENV_ACCESS ON std::fesetround(FE_DOWNWARD); std::cout << "rounding using FE_DOWNWARD:\n" << std::fixed << " 12.0 -> " << std::rint(12.0) << '\n' << " 12.1 -> " << std::rint(12.1) << '\n' << "-12.1 -> " << std::rint(-12.1) << '\n' << " 12.5 -> " << std::rint(12.5) << '\n' << " 12.9 -> " << std::rint(12.9) << '\n' << "-12.9 -> " << std::rint(-12.9) << '\n' << " 13.0 -> " << std::rint(13.0) << '\n'; std::fesetround(FE_TONEAREST); std::cout << "rounding using FE_TONEAREST: \n" << " 12.0 -> " << std::rint(12.0) << '\n' << " 12.1 -> " << std::rint(12.1) << '\n' << "-12.1 -> " << std::rint(-12.1) << '\n' << " 12.5 -> " << std::rint(12.5) << '\n' << " 12.9 -> " << std::rint(12.9) << '\n' << "-12.9 -> " << std::rint(-12.9) << '\n' << " 13.0 -> " << std::rint(13.0) << '\n'; std::cout << "When rounding 12.0 "; std::feclearexcept(FE_ALL_EXCEPT); std::rint(12.0); if(std::fetestexcept(FE_ALL_EXCEPT) & FE_INEXACT) { std::cout << "inexact result reported\n"; } else { std::cout << "inexact result not reported\n"; } std::cout << "When rounding 12.1 "; std::rint(12.1); if(std::fetestexcept(FE_ALL_EXCEPT) & FE_INEXACT) { std::cout << "inexact result reported\n"; } else { std::cout << "inexact result not reported\n"; } }
Output:
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 When rounding 12.0 inexact result not reported When rounding 12.1 inexact result reported
Siehe auch
(C++11) |
nächste ganze Zahl mit aktuellen Rundung Modus Original: nearest integer using current rounding mode The text has been machine-translated via Google Translate. (Funktion) [edit] |
(C++11) |
nächste Ganzzahl nicht betragsmäßig größer als der gegebene Wert Original: nearest integer not greater in magnitude than the given value The text has been machine-translated via Google Translate. (Funktion) [edit] |
(C++11) |
ab oder legt Rundung Richtung Original: gets or sets rounding direction The text has been machine-translated via Google Translate. (Funktion) [edit] |