Adloun

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

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →