Namensräume
Varianten
Aktionen

trunc, truncf, truncl

Von cppreference.com
< c‎ | numerik‎ | math
 
 
 
Allgemeine mathematische Funktionen
Funktionen
Grundlegende Operationen
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
Maximum/Minimum-Operationen
(C99)
(C99)
Exponentialfunktionen
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
Potenzfunktionen
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
Trigonometrische und hyperbolische Funktionen
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
Nächste ganze Gleitkommazahlen
(C99)(C99)(C99)
trunc
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
Gleitkomma-Manipulation
(C99)(C99)
(C99)(C23)
(C99)
Verengende Operationen
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quanten- und Quantenexponent-Funktionen
Dezimal-Neu-Kodierungsfunktionen
Gesamtordnung und Payload-Funktionen
Klassifizierung
(C99)
(C99)
(C99)
(C23)
Fehler- und Gammafunktionen
(C99)
(C99)
(C99)
(C99)
Typen
Makrokonstanten
Spezielle Gleitkommawerte
(C99)(C23)
Argumente und Rückgabewerte
Fehlerbehandlung
Schnelle Operationsanzeigen
 
Definiert in Header <math.h>
float       truncf( float arg );
(1) (seit C99)
double      trunc( double arg );
(2) (seit C99)
long double truncl( long double arg );
(3) (seit C99)
Definiert in Header <tgmath.h>
#define trunc( arg )
(4) (seit C99)
1-3) Berechnet die ganze Zahl, deren Betrag dem von arg am nächsten liegt und kleiner oder gleich arg ist.
4) Typ-generisches Makro: Wenn arg den Typ long double hat, wird truncl aufgerufen. Andernfalls, wenn arg einen ganzzahligen Typ oder den Typ double hat, wird trunc aufgerufen. Andernfalls wird truncf aufgerufen.

Inhalt

[edit] Parameter

arg - Gleitkommawert

[edit] Rückgabewert

Wenn keine Fehler auftreten, wird der ganzzahlige Wert zurückgegeben, der dem Betrag von arg am nächsten liegt und kleiner oder gleich arg ist (mit anderen Worten, arg wird auf Null gerundet).

Rückgabewert
math-trunc.svg
Argument

[edit] Fehlerbehandlung

Fehler werden wie in math_errhandling angegeben gemeldet.

Wenn die Implementierung IEEE-Gleitkomma-Arithmetik (IEC 60559) unterstützt

  • Der aktuelle Rundungsmodus hat keine Auswirkung.
  • 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.

[edit] Anmerkungen

FE_INEXACT kann ausgelöst werden (muss aber nicht), wenn ein nicht-ganzzahliger endlicher Wert abgeschnitten wird.

Die größten darstellbaren Gleitkommazahlen sind in allen Standard-Gleitkommaformaten exakte ganze Zahlen, daher kann diese Funktion für sich allein niemals überlaufen; das Ergebnis kann jedoch jeden Ganzzahltyp (einschließlich intmax_t) überlaufen, wenn es in einer Ganzzahlvariablen gespeichert wird.

Die implizite Konvertierung von Fließkomma- in Ganzzahltypen rundet ebenfalls gegen Null, ist aber auf Werte beschränkt, die vom Zieltyp dargestellt werden können.

[edit] Beispiel

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

Mögliche Ausgabe

trunc(+2.7) = +2.0
trunc(-2.7) = -2.0
trunc(-0.0) = -0.0
trunc(-Inf) = -inf

[edit] Referenzen

  • C23-Standard (ISO/IEC 9899:2024)
  • 7.12.9.8 The trunc functions (p: TBD)
  • 7.25 Typ-generische Mathematik <tgmath.h> (S. TBD)
  • F.10.6.8 The trunc functions (p: TBD)
  • C17-Standard (ISO/IEC 9899:2018)
  • 7.12.9.8 The trunc functions (p: TBD)
  • 7.25 Typ-generische Mathematik <tgmath.h> (S. TBD)
  • F.10.6.8 The trunc functions (p: TBD)
  • C11-Standard (ISO/IEC 9899:2011)
  • 7.12.9.8 The trunc functions (p: 253-254)
  • 7.25 Typ-generische Mathematik <tgmath.h> (S. 373-375)
  • F.10.6.8 The trunc functions (p: 528)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.12.9.8 The trunc functions (p: 234)
  • 7.22 Typ-generische Mathematik <tgmath.h> (S. 335-337)
  • F.9.6.8 The trunc functions (p: 464)

[edit] Siehe auch

berechnet die größte ganze Zahl, die nicht größer als der gegebene Wert ist
(Funktion) [bearbeiten]
(C99)(C99)
berechnet die kleinste ganze Zahl, die nicht kleiner als der gegebene Wert ist
(Funktion) [bearbeiten]
(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) [bearbeiten]