Le typage des nombres

Nous manipulerons essentiellement 2 types de nombres :

  1. les nombres de type int, correspondant aux entiers,

  2. les nombres de type float, correspondant, dans une première approche, aux nombres réels (flottants)

Il est important de bien distinguer en programmation ces 2 types de nombres, car ils ne sont pas codés en machine de la même façon et les opérations de base (addition, multiplication...) portant sur les int et sur les float ne sont pas programmées de la même façon.

Exemple

On aimerait connaître le nombre exact de mots qu'il est possible de coder sur 64 bits. Peut-on, pour cela, faire une opération avec le type int en python ? avec le type float ?

Nous expliquerons plus tard dans le cours que le nombre cherché est 264. En python, si nous tapons 2**64, nous calculons 264 avec les opérations portant sur des nombres de type int, tandis que si nous entrons 2.0**64, les opérations se feront avec le type float (2.0 désigne un float, tandis que 2 est un int).

1
>>> 2**64
2
18446744073709551616
3
>>> 2.0**64
4
1.8446744073709552e+19
5
>>> type(2**64)
6
<class 'int'>
7
>>> type(2.0**64)
8
<class 'float'>

Le résultat est exact avec un calcul utilisant le type int. Il ne l'est plus avec un calcul utilisant le type float.

Une réflexion sur le type à utiliser et sur la réponse apportée sera donc nécessaire dans la plupart des cas.