Namespaces
Variants

nearbyint, nearbyintf, nearbyintl

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
nearbyint
(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
Défini dans l'en-tête <math.h>
float nearbyintf ( float arg ) ;
(1) (depuis C99)
double nearbyint ( double arg ) ;
(2) (depuis C99)
long double nearbyintl ( long double arg ) ;
(3) (depuis C99)
Défini dans l'en-tête <tgmath.h>
#define nearbyint( arg )
(4) (depuis C99)
1-3) Arrondit l'argument à virgule flottante arg à une valeur entière au format à virgule flottante, en utilisant le mode d'arrondi courant .
4) Macro générique de type : Si arg a le type long double , nearbyintl est appelé. Sinon, si arg a un type entier ou le type double , nearbyint est appelé. Sinon, nearbyintf est appelé, respectivement.

Table des matières

Paramètres

arg - valeur à virgule flottante

Valeur de retour

La valeur entière la plus proche de arg , selon le mode d'arrondi actuel , est renvoyée.

Gestion des erreurs

Cette fonction n'est sujette à aucune des erreurs spécifiées dans math_errhandling .

Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559),

  • FE_INEXACT n'est jamais déclenché.
  • Si arg est ±∞, il est retourné, non modifié.
  • Si arg est ±0, il est retourné, non modifié.
  • Si arg est NaN, NaN est retourné.

Notes

La seule différence entre nearbyint et rint est que nearbyint ne lève jamais FE_INEXACT .

Les plus grandes valeurs représentables en virgule flottante sont des entiers exacts dans tous les formats standard de virgule flottante, donc nearbyint ne provoque jamais de dépassement de capacité par lui-même ; cependant le résultat peut dépasser la capacité de tout type entier (y compris intmax_t ), lorsqu'il est stocké dans une variable entière.

Si le mode d'arrondi actuel est FE_TONEAREST , cette fonction arrondit au pair dans les cas médians (comme rint , mais contrairement à round ).

Exemple

#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));
}

Sortie :

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

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 7.12.9.3 Les fonctions nearbyint (p: TBD)
  • 7.25 Mathématiques génériques de type <tgmath.h> (p: TBD)
  • F.10.6.3 Les fonctions nearbyint (p: TBD)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.12.9.3 Les fonctions nearbyint (p: TBD)
  • 7.25 Mathématiques génériques <tgmath.h> (p: TBD)
  • F.10.6.3 Les fonctions nearbyint (p: TBD)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.12.9.3 Les fonctions nearbyint (p: 251-252)
  • 7.25 Mathématiques génériques de type <tgmath.h> (p: 373-375)
  • F.10.6.3 Les fonctions nearbyint (p: 526)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.12.9.3 Les fonctions nearbyint (p: 232)
  • 7.22 Mathématiques génériques de type <tgmath.h> (p: 335-337)
  • F.9.6.3 Les fonctions nearbyint (p: 463)

Voir aussi

(C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99)
arrondit à un entier en utilisant le mode d'arrondi actuel avec
exception si le résultat diffère
(fonction)
(C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99)
arrondit à l'entier le plus proche, en arrondissant à l'opposé de zéro pour les cas médians
(fonction)
obtient ou définit la direction d'arrondi
(fonction)
Documentation C++ pour nearbyint