Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      nearbyint, nearbyintf, nearbyintl

      From cppreference.com
      <c‎ |numeric‎ |math
       
       
       
      Common mathematical functions
      Functions
      Basic operations
      (C99)
      (C99)
      (C99)
      (C99)(C99)(C99)(C23)
      Maximum/minimum operations
      (C99)
      (C99)
      Exponential functions
      (C23)
      (C99)
      (C99)
      (C23)
      (C23)

      (C99)
      (C99)(C23)
      (C23)
      (C23)
      Power functions
      (C99)
      (C23)
      (C23)

      (C99)
      (C23)
      (C23)
      Trigonometric and hyperbolic functions
      (C23)
      (C23)
      (C23)
      (C23)
      (C99)
      (C99)
      (C99)
      Nearest integer floating-point
      nearbyint
      (C99)
      (C99)(C99)(C99)
      (C23)(C23)(C23)(C23)
      Floating-point manipulation
      (C99)(C99)
      (C99)(C23)
      (C99)
      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
      (C99)(C23)
      Arguments and return values
      Error handling
      Fast operation indicators
       
      Defined in header<math.h>
      float       nearbyintf(float arg);
      (1)(since C99)
      double      nearbyint(double arg);
      (2)(since C99)
      longdouble nearbyintl(longdouble arg);
      (3)(since C99)
      Defined in header<tgmath.h>
      #define nearbyint( arg )
      (4)(since C99)
      1-3) Rounds the floating-point argumentarg to an integer value in floating-point format, using thecurrent rounding mode.
      4) Type-generic macro: Ifarg has typelongdouble,nearbyintl is called. Otherwise, ifarg has integer type or the typedouble,nearbyint is called. Otherwise,nearbyintf is called, respectively.

      Contents

      [edit]Parameters

      arg - floating-point value

      [edit]Return value

      The nearest integer value toarg, according to thecurrent rounding mode, is returned.

      [edit]Error handling

      This function is not subject to any of the errors specified inmath_errhandling.

      If the implementation supports IEEE floating-point arithmetic (IEC 60559),

      • FE_INEXACT is never raised.
      • Ifarg is ±∞, it is returned, unmodified.
      • Ifarg is ±0, it is returned, unmodified.
      • Ifarg is NaN, NaN is returned.

      [edit]Notes

      The only difference betweennearbyint andrint is thatnearbyint never raisesFE_INEXACT.

      The largest representable floating-point values are exact integers in all standard floating-point formats, sonearbyint never overflows on its own; however the result may overflow any integer type (includingintmax_t), when stored in an integer variable.

      If the current rounding mode isFE_TONEAREST, this function rounds to even in halfway cases (likerint, but unlikeround).

      [edit]Example

      Run this code
      #include <fenv.h>#include <math.h>#include <stdio.h> int main(void){// #pragma STDC FENV_ACCESS ONfesetround(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));}

      Output:

      rounding to nearest:nearbyint(+2.3) = +2.0  nearbyint(+2.5) = +2.0  nearbyint(+3.5) = +4.0nearbyint(-2.3) = -2.0  nearbyint(-2.5) = -2.0  nearbyint(-3.5) = -4.0rounding down:nearbyint(+2.3) = +2.0  nearbyint(+2.5) = +2.0  nearbyint(+3.5) = +3.0nearbyint(-2.3) = -3.0  nearbyint(-2.5) = -3.0  nearbyint(-3.5) = -4.0nearbyint(-0.0) = -0.0nearbyint(-Inf) = -inf

      [edit]References

      • C23 standard (ISO/IEC 9899:2024):
      • 7.12.9.3 The nearbyint functions (p: TBD)
      • 7.25 Type-generic math <tgmath.h> (p: TBD)
      • F.10.6.3 The nearbyint functions (p: TBD)
      • C17 standard (ISO/IEC 9899:2018):
      • 7.12.9.3 The nearbyint functions (p: TBD)
      • 7.25 Type-generic math <tgmath.h> (p: TBD)
      • F.10.6.3 The nearbyint functions (p: TBD)
      • C11 standard (ISO/IEC 9899:2011):
      • 7.12.9.3 The nearbyint functions (p: 251-252)
      • 7.25 Type-generic math <tgmath.h> (p: 373-375)
      • F.10.6.3 The nearbyint functions (p: 526)
      • C99 standard (ISO/IEC 9899:1999):
      • 7.12.9.3 The nearbyint functions (p: 232)
      • 7.22 Type-generic math <tgmath.h> (p: 335-337)
      • F.9.6.3 The nearbyint functions (p: 463)

      [edit]See also

      (C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)
      rounds to an integer using current rounding mode with
      exception if the result differs
      (function)[edit]
      (C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)(C99)
      rounds to nearest integer, rounding away from zero in halfway cases
      (function)[edit]
      gets or sets rounding direction
      (function)[edit]
      C++ documentation fornearbyint
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=c/numeric/math/nearbyint&oldid=172053"

      [8]ページ先頭

      ©2009-2025 Movatter.jp