Namespaces
Variants

isfinite

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)
(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
isfinite
(C99)
(C99)
(C99)
(C99)
(C23)
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 in Header <math.h>
#define isfinite(arg) /* implementation defined */
(seit C99)

Bestimmt, ob die gegebene Gleitkommazahl arg einen endlichen Wert hat, d.h. sie ist normal, subnormal oder null, aber nicht unendlich oder NaN. Das Makro gibt einen ganzzahligen Wert zurück.

FLT_EVAL_METHOD wird ignoriert: selbst wenn das Argument mit größerer Reichweite und Genauigkeit als sein Typ ausgewertet wird, wird es zuerst in seinen semantischen Typ konvertiert, und die Klassifizierung basiert darauf.

Inhaltsverzeichnis

Parameter

arg - Gleitkommawert

Rückgabewert

Nicht-Null-Ganzzahlwert, falls arg einen endlichen Wert hat, 0 andernfalls.

Beispiel

#include <float.h>
#include <math.h>
#include <stdio.h>
int main(void)
{
    printf("isfinite(NAN)         = %d\n", isfinite(NAN));
    printf("isfinite(INFINITY)    = %d\n", isfinite(INFINITY));
    printf("isfinite(0.0)         = %d\n", isfinite(0.0));
    printf("isfinite(DBL_MIN/2.0) = %d\n", isfinite(DBL_MIN / 2.0));
    printf("isfinite(1.0)         = %d\n", isfinite(1.0));
    printf("isfinite(exp(800))    = %d\n", isfinite(exp(800)));
}

Mögliche Ausgabe:

isfinite(NAN)         = 0
isfinite(INFINITY)    = 0
isfinite(0.0)         = 1
isfinite(DBL_MIN/2.0) = 1
isfinite(1.0)         = 1
isfinite(exp(800))    = 0

Referenzen

  • C23-Standard (ISO/IEC 9899:2024):
  • 7.12.3.2 Die isfinite-Makro (S.: TBD)
  • C17-Standard (ISO/IEC 9899:2018):
  • 7.12.3.2 Die isfinite-Makro (S: TBD)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.12.3.2 Die isfinite-Makro (S: 236)
  • C99-Standard (ISO/IEC 9899:1999):
  • 7.12.3.2 Die isfinite-Makro (S: 216-217)

Siehe auch

klassifiziert den gegebenen Gleitkommawert
(Funktionsmakro)
(C99)
prüft, ob die gegebene Zahl unendlich ist
(Funktionsmakro)
(C99)
prüft, ob die gegebene Zahl NaN ist
(Funktionsmakro)
prüft, ob die gegebene Zahl normal ist
(Funktionsmakro)
C++ documentation für isfinite