Lorsque vous travaillez avec des nombres à virgule flottante, il est essentiel de prendre en compte les limites de ce type de données. En particulier, les nombres à virgule flottante peuvent ne pas représenter exactement certaines valeurs, ce qui entraîne des résultats inattendus lors d'une tentative d'arrondi.
Problème : Lorsque vous essayez d'arrondir un flottant à deux décimales, vous pouvez rencontrez le problème suivant :
>>> a 13.949999999999999 >>> round(a, 2) 13.949999999999999
Le problème se pose car les nombres à virgule flottante stockent les valeurs sous forme d'entiers divisés par une puissance de deux. Cette représentation peut ne pas capturer toutes les valeurs avec précision. Dans le cas des nombres double précision (utilisés par le type à virgule flottante de Python), ils ont 53 bits (16 chiffres) de précision, tandis que les flottants normaux ont 24 bits (8 chiffres).
Solution :
Pour afficher seulement deux décimales lors de l'arrondi d'un flottant, plusieurs options sont disponibles disponible :
Exemples :
>>> a = 13.946 >>> print("%.2f" % a) 13.95 >>> print("{:.2f}".format(a)) 13.95
Notez que l'utilisation directe de round(a, 2) entraînera toujours des problèmes de précision en virgule flottante, mais le formatage la valeur sous forme de chaîne avec %.2f ou {:.2f} produira la représentation à deux décimales souhaitée.
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!