Namespaces
Variants

roundeven, roundevenf, roundevenl

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
Power functions
Trigonometric and hyperbolic functions
Nearest integer floating-point
(C99) (C99) (C99)
roundeven
(C23)
(C99)

(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
Arguments and return values
Error handling
Fast operation indicators
Definiert im Header <math.h>
float roundevenf ( float arg ) ;
(1) (seit C23)
double roundeven ( double arg ) ;
(2) (seit C23)
long double roundevenl ( long double arg ) ;
(3) (seit C23)
Definiert im Header <tgmath.h>
#define roundeven( arg )
(4) (seit C23)
1-3) Berechnet den nächstgelegenen ganzzahligen Wert zu arg (im Gleitkommaformat), wobei Halbwegsfälle zur nächstgelegenen geraden ganzen Zahl gerundet werden, unabhängig vom aktuellen Rundungsmodus.
4) Typgenerisches Makro: Wenn arg den Typ long double hat, wird roundevenl aufgerufen. Andernfalls, wenn arg einen Ganzzahltyp oder den Typ double hat, wird roundeven aufgerufen. Andernfalls wird jeweils roundevenf aufgerufen.

Inhaltsverzeichnis

Parameter

arg - Gleitkommawert

Rückgabewert

Wenn keine Fehler auftreten, wird der nächstgelegene ganzzahlige Wert zu arg , wobei halbe Fälle zur nächstgelegenen geraden Ganzzahl gerundet werden, zurückgegeben.

Fehlerbehandlung

Diese Funktion unterliegt keinen der in math_errhandling spezifizierten Fehler.

Wenn die Implementierung IEEE-Gleitkommaarithmetik (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.

Beispiel

#include <math.h>
#include <stdio.h>
int main(void)
{
    printf("roundeven(+2.4) = %+.1f\n", roundeven(2.4));
    printf("roundeven(-2.4) = %+.1f\n", roundeven(-2.4));
    printf("roundeven(+2.5) = %+.1f\n", roundeven(2.5));
    printf("roundeven(-2.5) = %+.1f\n", roundeven(-2.5));
    printf("roundeven(+2.6) = %+.1f\n", roundeven(2.6));
    printf("roundeven(-2.6) = %+.1f\n", roundeven(-2.6));
    printf("roundeven(+3.5) = %+.1f\n", roundeven(3.5));
    printf("roundeven(-3.5) = %+.1f\n", roundeven(-3.5));
    printf("roundeven(-0.0) = %+.1f\n", roundeven(-0.0));
    printf("roundeven(-Inf) = %+f\n",   roundeven(-INFINITY));
}

Mögliche Ausgabe:

roundeven(+2.4) = +2.0
roundeven(-2.4) = -2.0
roundeven(+2.5) = +2.0
roundeven(-2.5) = -2.0
roundeven(+2.6) = +3.0
roundeven(-2.6) = -3.0
roundeven(+3.5) = +4.0
roundeven(-3.5) = -4.0
roundeven(-0.0) = -0.0
roundeven(-Inf) = -inf

Referenzen

  • C23-Standard (ISO/IEC 9899:2024):
  • 7.12.9.8 Die roundeven-Funktionen (S: 265-266)
  • 7.27 Typgenerische Mathematik <tgmath.h> (S: 386-390)
  • F.10.6.8 Die roundeven-Funktionen (S: 532)

Siehe auch

(C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99)
rundet auf eine Ganzzahl unter Verwendung des aktuellen Rundungsmodus mit
Ausnahme, wenn das Ergebnis abweicht
(Funktion)
(C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99)
rundet auf die nächste Ganzzahl, bei Mittelwerten von Null weg
(Funktion)