Maison >développement back-end >Tutoriel Python >Comment puis-je arrondir de manière fiable les flotteurs à deux décimales pour les afficher ?
Limiter les flottants à deux décimales
Essayer d'arrondir un flottant à deux décimales en utilisant des méthodes standard comme round() peut produire des résultats inattendus . Cela est dû aux limitations inhérentes à la représentation à virgule flottante, où certains nombres ne peuvent pas être représentés exactement.
Dans les ordinateurs binaires, les nombres à virgule flottante sont stockés sous forme d'entiers divisés par une puissance de deux. Par exemple, 13,95 est approximativement représenté par 125650429603636838/(2**53). Étant donné que les types à virgule flottante ont une précision limitée (24 bits pour les flottants et 53 bits pour la double précision), ces valeurs ne peuvent pas toujours être représentées avec précision.
Par conséquent, arrondir un nombre à virgule flottante à l'aide de round() peut produire un résultat légèrement décalé. Pour obtenir la précision souhaitée à deux décimales à des fins d'affichage, d'autres approches peuvent être adoptées :
Par exemple, les opérations suivantes arrondiront correctement une à deux décimales emplacements d'affichage :
print("%.2f" % a) # -> 13.95 print("{:.2f}".format(a)) # -> 13.95
L'utilisation de "{:.15f}".format(round(a, 2)) renverra 13,9499999999999999 en raison des limitations de précision des nombres à virgule flottante. Toutefois, à des fins d’affichage, ce niveau de précision n’est pas nécessaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!