:PROPERTIES:
:ID:       f7c05933-90e6-4a9c-acd5-1f0baf62f07f
:mtime:    20220528103954
:ctime:    20220206220528
:END:
#+title: Arrondir les flottants en python
#+filetags: :Python:

* Arrondir à l'entier le plus proche
** Avec la fonction /built-in/ /round/
#+BEGIN_SRC python :results output
print(f"{round(7 / 2) = }")
print(f"{round(3 / 2) = }")
print(f"{round(5 / 2) = }")
#+END_SRC

#+RESULTS:
: round(7 / 2) = 4
: round(3 / 2) = 2
: round(5 / 2) = 2

~round(5 / 2)~ retourne 2 et non 3 car la fonction /built-in/ implémente l'[[https://fr.wikipedia.org/wiki/Arrondi_(math%C3%A9matiques)#Arrondi%20au%20pair%20le%20plus%20proche][arrondi au pair le plus proche]].

* Arrondir un nombre à l'entier inférieur
#+BEGIN_SRC python :results output
print(22 // 5)
#+END_SRC
#+RESULTS:
: 4

* Arrondir un noombre à l'entier supérieur
** Arithmétique simple
#+BEGIN_SRC python :results output
n = 22
div = 5
print(f'{int(n/div) + (n % div>0) = }')
#+END_SRC
#+RESULTS:
: int(n/div) + (n % div>0) = 5

** Opérateur à étage // (ne fonctionne qu'avec les entiers)
L'opérateur à étage // se comporte comme l'opérateur de division /, à la différence que le résultat est arrondi à
l'entier inférieur :
#+BEGIN_SRC  python :results output
print(22 // -5 * -1)
#+END_SRC
#+RESULTS:
: 5

** Méthode /numpy.ceil/
#+BEGIN_SRC python :results output
from numpy import ceil

print(int(ceil(22 / 5)))
#+END_SRC
#+RESULTS:
: 5

* Références
 * [[https://medium.com/@saint_sdmn/10-hardest-python-questions-98986c8cd309][10 Hardest Python Questions - Medium]]
 * [[id:f7c05933-90e6-4a9c-acd5-1f0baf62f07f][Arrondir les flottants en python]]
 * [[https://www.delftstack.com/fr/howto/python/python-round-up/][Arrondir un nombre en Python]]
