std:: floor, std:: floorf, std:: floorl
|
Défini dans l'en-tête
<cmath>
|
||
| (1) | ||
|
float
floor
(
float
num
)
;
double
floor
(
double
num
)
;
|
(jusqu'à C++23) | |
|
constexpr
/*floating-point-type*/
floor ( /*floating-point-type*/ num ) ; |
(depuis C++23) | |
|
float
floorf
(
float
num
)
;
|
(2) |
(depuis C++11)
(constexpr depuis C++23) |
|
long
double
floorl
(
long
double
num
)
;
|
(3) |
(depuis C++11)
(constexpr depuis C++23) |
|
Surcharge SIMD
(depuis C++26)
|
||
|
Défini dans l'en-tête
<simd>
|
||
|
template
<
/*math-floating-point*/
V
>
constexpr
/*deduced-simd-t*/
<
V
>
|
(S) | (depuis C++26) |
|
Surcharges supplémentaires
(depuis C++11)
|
||
|
Défini dans l'en-tête
<cmath>
|
||
|
template
<
class
Integer
>
double floor ( Integer num ) ; |
(A) | (constexpr depuis C++23) |
std::floor
pour tous les types à virgule flottante non qualifiés cv comme type du paramètre.
(depuis C++23)
|
S)
La surcharge SIMD effectue un
std::floor
élément par élément sur
v_num
.
|
(depuis C++26) |
|
A)
Des surcharges supplémentaires sont fournies pour tous les types entiers, qui sont traités comme
double
.
|
(depuis C++11) |
Table des matières |
Paramètres
| num | - | valeur à virgule flottante ou entière |
Valeur de retour
Si aucune erreur ne se produit, la plus grande valeur entière inférieure ou égale à num , c'est-à-dire ⌊num⌋ , est renvoyée.
Gestion des erreurs
Les erreurs sont signalées comme spécifié dans math_errhandling .
Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559),
- Le mode d'arrondi actuel n'a aucun effet.
- Si num est ±∞, il est retourné, non modifié.
- Si num est ±0, il est retourné, non modifié.
- Si num est NaN, NaN est retourné.
Notes
FE_INEXACT peut être (mais n'est pas obligatoirement) déclenchée lors de l'arrondi d'une valeur finie non entière.
Les plus grandes valeurs représentables en virgule flottante sont des entiers exacts dans tous les formats standard de virgule flottante, donc cette fonction ne dépasse jamais sa propre capacité ; cependant le résultat peut dépasser la capacité de tout type entier (y compris std::intmax_t ), lorsqu'il est stocké dans une variable entière.
Les surcharges supplémentaires ne sont pas requises d'être fournies exactement comme (A) . Elles doivent seulement être suffisantes pour garantir que pour leur argument num de type entier, std :: floor ( num ) ait le même effet que std :: floor ( static_cast < double > ( num ) ) .
Exemple
#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'; }
Sortie :
floor(+2.7) = 2.000000 floor(-2.7) = -3.000000 floor(-0.0) = -0.000000 floor(-Inf) = -inf
Voir aussi
|
(C++11)
(C++11)
|
entier le plus proche non inférieur à la valeur donnée
(fonction) |
|
(C++11)
(C++11)
(C++11)
|
entier le plus proche de magnitude non supérieure à la valeur donnée
(fonction) |
|
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
|
entier le plus proche, en arrondissant à l'opposé de zéro dans les cas médians
(fonction) |
|
Documentation C
pour
floor
|
|