nearbyint, nearbyintf, nearbyintl
| Definiert in Header <math.h> |
||
| float nearbyintf( float arg ); |
(1) | (seit C99) |
| double nearbyint( double arg ); |
(2) | (seit C99) |
| long double nearbyintl( long double arg ); |
(3) | (seit C99) |
| Definiert in Header <tgmath.h> |
||
| #define nearbyint( arg ) |
(4) | (seit C99) |
nearbyintl aufgerufen. Andernfalls, wenn arg den ganzzahligen Typ oder den Typ double hat, wird nearbyint aufgerufen. Andernfalls wird nearbyintf bzw. aufgerufen.Inhalt |
[bearbeiten] Parameter
| arg | - | Gleitkommawert |
[bearbeiten] Rückgabewert
Der nächstgelegene ganzzahlige Wert zu arg, gemäß dem aktuellen Rundungsmodus, wird zurückgegeben.
[bearbeiten] Fehlerbehandlung
Diese Funktion unterliegt keiner der in math_errhandling spezifizierten Fehler.
Wenn die Implementierung IEEE-Gleitkomma-Arithmetik (IEC 60559) unterstützt,
- FE_INEXACT wird niemals ausgelöst.
- Wenn arg ±∞ ist, wird es unverändert zurückgegeben.
- Wenn arg ±0 ist, wird es unverändert zurückgegeben.
- Wenn arg NaN ist, wird NaN zurückgegeben.
[bearbeiten] Hinweise
Der einzige Unterschied zwischen nearbyint und rint besteht darin, dass nearbyint niemals FE_INEXACT auslöst.
Die größten darstellbaren Gleitkommawerte sind in allen Standard-Gleitkommaformaten exakte ganze Zahlen, daher tritt bei nearbyint allein niemals ein Überlauf auf; das Ergebnis kann jedoch jeden ganzzahligen Typ (einschließlich intmax_t) überlaufen, wenn es in einer ganzzahligen Variablen gespeichert wird.
Wenn der aktuelle Rundungsmodus FE_TONEAREST ist, rundet diese Funktion bei gleichen Fällen (wie rint, aber im Gegensatz zu round) auf die gerade Zahl.
[bearbeiten] Beispiel
#include <fenv.h> #include <math.h> #include <stdio.h> int main(void) { // #pragma STDC FENV_ACCESS ON fesetround(FE_TONEAREST); printf("rounding to nearest:\nnearbyint(+2.3) = %+.1f ", nearbyint(2.3)); printf("nearbyint(+2.5) = %+.1f ", nearbyint(2.5)); printf("nearbyint(+3.5) = %+.1f\n", nearbyint(3.5)); printf("nearbyint(-2.3) = %+.1f ", nearbyint(-2.3)); printf("nearbyint(-2.5) = %+.1f ", nearbyint(-2.5)); printf("nearbyint(-3.5) = %+.1f\n", nearbyint(-3.5)); fesetround(FE_DOWNWARD); printf("rounding down: \nnearbyint(+2.3) = %+.1f ", nearbyint(2.3)); printf("nearbyint(+2.5) = %+.1f ", nearbyint(2.5)); printf("nearbyint(+3.5) = %+.1f\n", nearbyint(3.5)); printf("nearbyint(-2.3) = %+.1f ", nearbyint(-2.3)); printf("nearbyint(-2.5) = %+.1f ", nearbyint(-2.5)); printf("nearbyint(-3.5) = %+.1f\n", nearbyint(-3.5)); printf("nearbyint(-0.0) = %+.1f\n", nearbyint(-0.0)); printf("nearbyint(-Inf) = %+.1f\n", nearbyint(-INFINITY)); }
Ausgabe
rounding to nearest: nearbyint(+2.3) = +2.0 nearbyint(+2.5) = +2.0 nearbyint(+3.5) = +4.0 nearbyint(-2.3) = -2.0 nearbyint(-2.5) = -2.0 nearbyint(-3.5) = -4.0 rounding down: nearbyint(+2.3) = +2.0 nearbyint(+2.5) = +2.0 nearbyint(+3.5) = +3.0 nearbyint(-2.3) = -3.0 nearbyint(-2.5) = -3.0 nearbyint(-3.5) = -4.0 nearbyint(-0.0) = -0.0 nearbyint(-Inf) = -inf
[bearbeiten] Referenzen
- C23-Standard (ISO/IEC 9899:2024)
- 7.12.9.3 The nearbyint functions (S. TBD)
- 7.25 Typ-generische Mathematik <tgmath.h> (S. TBD)
- F.10.6.3 The nearbyint functions (S. TBD)
- C17-Standard (ISO/IEC 9899:2018)
- 7.12.9.3 The nearbyint functions (S. TBD)
- 7.25 Typ-generische Mathematik <tgmath.h> (S. TBD)
- F.10.6.3 The nearbyint functions (S. TBD)
- C11-Standard (ISO/IEC 9899:2011)
- 7.12.9.3 The nearbyint functions (S. 251-252)
- 7.25 Typ-generische Mathematik <tgmath.h> (S. 373-375)
- F.10.6.3 The nearbyint functions (S. 526)
- C99-Standard (ISO/IEC 9899:1999)
- 7.12.9.3 The nearbyint functions (S. 232)
- 7.22 Typ-generische Mathematik <tgmath.h> (S. 335-337)
- F.9.6.3 The nearbyint functions (S. 463)
[bearbeiten] Siehe auch
| (C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99) |
rundet auf eine ganze Zahl gemäß der aktuellen Rundungsregel mit Ausnahme, wenn das Ergebnis abweicht (Funktion) |
| (C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99) |
rundet auf die nächste ganze Zahl, wobei bei Halb-Wert-Fällen von Null weg gerundet wird (Funktion) |
| (C99)(C99) |
holt oder setzt die Rundungsrichtung (function) |
| C++ Dokumentation für nearbyint
| |