std::floor, std::floorf, std::floorl
From cppreference.com
| ヘッダー <cmath> で定義 |
||
| (1) | ||
float floor ( float num ); double floor ( double num ); |
(C++23まで) | |
| constexpr /*浮動小数点数型*/ floor ( /*浮動小数点数型*/ num ); |
(C++23から) | |
float floorf( float num ); |
(2) | (C++11以降) (C++23 以降 constexpr) |
long double floorl( long double num ); |
(3) | (C++11以降) (C++23 以降 constexpr) |
| SIMDオーバーロード (C++26以降) |
||
| ヘッダー <simd> で定義 |
||
| template< /*math-floating-point*/ V > constexpr /*deduced-simd-t*/<V> |
(S) | (C++26以降) |
| 追加のオーバーロード (C++11以降) |
||
| ヘッダー <cmath> で定義 |
||
template< class Integer > double floor ( Integer num ); |
(A) | (C++23 以降 constexpr) |
1-3) num 以下の最大の整数値を計算します。ライブラリは、パラメータの型としてすべての cv 修飾されていない浮動小数点型の
std::floor のオーバーロードを提供します。(since C++23)|
S) SIMD オーバーロードは、v_num に対して要素ごとの
std::floor を実行します。
|
(C++26以降) |
|
A) すべての整数型に対する追加のオーバーロードが提供されます。これらは double として扱われます。
|
(C++11以降) |
目次 |
[edit] パラメータ
| num | - | 浮動小数点数または整数値 |
[edit] 戻り値
エラーが発生しなかった場合、num 以下の最大の整数値、すなわち ⌊num⌋ が返されます。
戻り値
num
[edit] エラー処理
エラーは math_errhandling で指定された通りに報告される。
実装がIEEE浮動小数点算術 (IEC 60559) をサポートしている場合、
- 現在の 丸めモード は影響しません。
- num が ±∞ の場合、変更されずに返されます。
- num が ±0 の場合、変更されずに返されます。
- num が NaN の場合、NaN が返されます。
[edit] 注意
FE_INEXACT は、非整数の有限値を丸める際に発生する可能性があります(ただし、必須ではありません)。
表現可能な最大の浮動小数点値は、すべての標準浮動小数点フォーマットで正確な整数であるため、この関数自体でオーバーフローすることはありません。ただし、整数変数に格納される際に、結果が(std::intmax_t を含む)整数型をオーバーフローする可能性があります。
追加のオーバーロードは、(A) とまったく同じように提供される必要はありません。整数型の引数 num に対して、std::floor(num) が std::floor(static_cast<double>(num)) と同じ効果を持つことを保証するのに十分であればよいのです。
[edit] 例
このコードを実行
#include <cmath> #include <iostream> int main() { std::cout << std::fixed << "floor(+2.7) = " << std::floor(+2.7) << '\n' << "floor(-2.7) = " << std::floor(-2.7) << '\n' << "floor(-0.0) = " << std::floor(-0.0) << '\n' << "floor(-Inf) = " << std::floor(-INFINITY) << '\n'; }
出力
floor(+2.7) = 2.000000 floor(-2.7) = -3.000000 floor(-0.0) = -0.000000 floor(-Inf) = -inf
[edit] 関連項目
| (C++11)(C++11) |
与えられた値以上の最小の整数 (関数) |
| (C++11)(C++11)(C++11) |
与えられた値の絶対値以下の最大の整数 (関数) |
| (C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11)(C++11) |
最近接整数、中間値はゼロから遠い方に丸める (関数) |
| C のドキュメント (floor)
| |