Python (école d'ingénieur) · Chapitre 3 · Exercice
Conversion de type et pièges de précision
Représentation des nombres en machine
Énoncé
Étudier les pertes de précision lors des conversions entre types numériques.
def etude_conversions():
# 1. Perte au-delà de 2^53
n = 2**53
print(f"2^53 = {n}")
print(f"float({n}) = {float(n)}")
print(f"int(float({n})) = {int(float(n))}")
n_plus_1 = n + 1
print(f"2^53 + 1 = {n_plus_1}")
print(f"int(float({n_plus_1})) = {int(float(n_plus_1))}")
etude_conversions()
Déterminer le premier entier naturel impair qui n'est pas conservé lors de la conversion int float int.
Corrigé
Le premier entier non représentable exactement est . En effet, le standard IEEE-754 double précision utilise 53 bits de mantisse (dont 1 bit implicite). Au-delà de , les entiers ne peuvent plus tous être représentés exactement, et la distance entre flottants consécutifs devient supérieure ou égale à 2.
100 % gratuit
La suite du chapitre est sur Adloun
- 7 autres exercices corrigés dans ce chapitre, et 7 à chercher avec le tuteur
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.