Namespaces
Variants

floor, floorf, floorl

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
floor
(C99) (C99) (C99)
(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
ヘッダーで定義 <math.h>
float floorf ( float arg ) ;
(1) (C99以降)
double floor ( double arg ) ;
(2)
long double floorl ( long double arg ) ;
(3) (C99以降)
ヘッダーで定義 <tgmath.h>
#define floor( arg )
(4) (C99以降)
1-3) arg 以下の最大の整数値を計算します。
4) 型総称マクロ: arg の型が long double の場合、 floorl が呼び出される。それ以外の場合、 arg が整数型または double 型の場合、 floor が呼び出される。それ以外の場合、 floorf が呼び出される。

目次

パラメータ

arg - 浮動小数点値

戻り値

エラーが発生しない場合、 arg 以下の最大の整数値、すなわち ⌊arg⌋ が返されます。

戻り値
math-floor.svg
引数

エラー処理

エラーは math_errhandling で指定された通りに報告されます。

IEEE浮動小数点演算(IEC 60559)が実装でサポートされている場合:

  • 現在の 丸めモード は効果を持ちません。
  • arg が ±∞ の場合、変更されずに返されます。
  • arg が ±0 の場合、変更されずに返されます。
  • arg が NaN の場合、NaN が返されます。

注記

FE_INEXACT 非整数の有限値を丸める際に(必須ではないが)発生する可能性があります。

標準的な浮動小数点形式における最大表現可能な浮動小数点値はすべて正確な整数であるため、この関数自体がオーバーフローすることは決してありません。しかしながら、結果が整数変数に格納される場合、あらゆる整数型( intmax_t を含む)でオーバーフローする可能性があります。

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

出力例:

floor(+2.7) = +2.0
floor(-2.7) = -3.0
floor(-0.0) = -0.0
floor(-Inf) = -inf

参考文献

  • C23規格 (ISO/IEC 9899:2024):
  • 7.12.9.2 floor関数群 (p: 未定)
  • 7.25 総称数学 <tgmath.h> (p: 未定)
  • F.10.6.2 floor関数群 (p: 未定)
  • C17規格 (ISO/IEC 9899:2018):
  • 7.12.9.2 floor関数群 (p: TBD)
  • 7.25 総称型数学 <tgmath.h> (p: TBD)
  • F.10.6.2 floor関数群 (p: TBD)
  • C11標準 (ISO/IEC 9899:2011):
  • 7.12.9.2 floor関数群 (p: 251)
  • 7.25 総称数学 <tgmath.h> (p: 373-375)
  • F.10.6.2 floor関数群 (p: 526)
  • C99標準(ISO/IEC 9899:1999):
  • 7.12.9.2 floor関数(p: 232)
  • 7.22 総称数学 <tgmath.h>(p: 335-337)
  • F.9.6.2 floor関数(p: 463)
  • C89/C90標準 (ISO/IEC 9899:1990):
  • 4.5.6.3 floor関数

関連項目

(C99) (C99)
指定された値以上の最小の整数を計算する
(関数)
(C99) (C99) (C99)
指定された値の絶対値以下の最も近い整数に丸める
(関数)
(C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99) (C99)
最も近い整数に丸める(中間値の場合はゼロから離れる方向に丸める)
(関数)