Formater un nombre flottant en chaîne en Python

Ankur Baral 30 janvier 2023
  1. Formater les nombres flottants à une largeur fixe à l’aide de la spécification de format et de la méthode format()
  2. Formater les nombres flottants dans une liste à une largeur fixe
  3. Formater un nombre flottant pour corriger la largeur à l’aide de l’opérateur % en Python
  4. Formater un nombre flottant en une largeur fixe à l’aide de la fonction round() en Python
Formater un nombre flottant en chaîne en Python

Cet article présentera quelques méthodes pour formater un nombre flottant à une largeur fixe en Python.

Formater les nombres flottants à une largeur fixe à l’aide de la spécification de format et de la méthode format()

Ici, nous utiliserons le processus de formatage normal via la spécification de format pour fixer la largeur des nombres flottants.

Nous allons créer une variable num et lui affecter un nombre flottant. Ensuite, nous imprimerons le nombre flottant au format dont nous avons besoin. Nous allons utiliser la fonction format() pour obtenir notre résultat.

Exemples de codes :

# python 3.x
num = 0.02893574
print("{:.4f}".format(num))

Production:

0.0289

Ici, .4f est appelé spécification de format, ce qui indique que la sortie ne doit afficher que quatre chiffres après la virgule. Si nous utilisions .5f à la place, nous obtiendrions jusqu’à cinq chiffres après la virgule. La chaîne vide avant les deux points : est placée de sorte que l’argument fourni à la fonction format() prenne cette place. Dans le programme ci-dessus, l’argument que nous avons fourni est num. Ainsi, toute valeur que nous avons dans num sera transmise à la chaîne vide avant le : et formatée en conséquence.

En Python 3.6, nous pouvons également utiliser f'{}' pour obtenir la même sortie :

# python 3.x
num = 0.02893574
print(f"{num:.4f}")

Production:

0.0289

Formater les nombres flottants dans une liste à une largeur fixe

Nous utilisons des syntaxes similaires pour fixer la largeur des nombres flottants jusqu’à un chiffre spécifique après la virgule.

Tout d’abord, nous allons créer une liste avec plusieurs nombres flottants. Ensuite, nous utiliserons la boucle for pour prendre chaque élément de la liste et le formater en conséquence. Nous utiliserons la variable numbers pour représenter les nombres à l’intérieur de la liste. Nous imprimerons les nombres flottants dans la liste un par un avec des nombres fixes de chiffres après la virgule.

Exemple de code :

# python 3.x
list = [18.292164, 52.452189, 999.1212732]
for numbers in list:
    print("{:.3f}".format(numbers))

Production:

18.292
52.452
999.121

Dans le code ci-dessus, chaque numéro de la liste est envoyé un par un à l’intérieur de la boucle for. Le premier élément de la liste, c’est-à-dire list[0], est affecté à la variable numbers, et sa valeur formatée, c’est-à-dire 18.293, est imprimée. C’est arrivé parce que nous avons exécuté .3f, qui représente des chiffres jusqu’à trois chiffres après la virgule. De même, le deuxième élément list[1] et le troisième list[2] sont également transmis à la boucle en tant que variable numbers et sont imprimés en conséquence.

Ce programme s’exécute jusqu’à ce que tous les éléments de la liste soient exécutés.

En utilisant le f'{}' :

Exemple de code :

La liste ci-dessous contient les mêmes éléments que le programme ci-dessus. Nous utiliserons f'{}' au lieu de la fonction format() dans cet exemple.

# python 3.x
list = [18.292164, 52.452189, 999.1212732]
for numbers in list:
    print(f"{numbers:9.3f}")

Production:

 18.292
 52.452
999.121

Nous pouvons le voir lorsque nous avons obtenu la sortie lorsque nous avons utilisé f'{}'. Nous avons également obtenu le résultat souhaité de manière alignée. Pour la même raison, il est généralement préférable d’utiliser f'{}' si nous voulons que les chiffres flottants après la virgule soient alignés.

Formater un nombre flottant pour corriger la largeur à l’aide de l’opérateur % en Python

Nous pouvons également définir une largeur fixe pour un nombre flottant avec l’utilisation de l’opérateur %v. Le code peut ressembler à la fonction printf() en programmation C.

Nous allons affecter un nombre flottant à une variable num et imprimer la valeur de num avec des chiffres décimaux jusqu’à une largeur fixe. Notez qu’en passant la valeur de num à l’instruction print avec le spécificateur de format %.4f, nous utilisons num. % manquant avant num sera une erreur de syntaxe.

Exemple de code :

# python 3.x
num = 0.02893574
print("%.4f" % num)

Production:

0.0289

Ici, l’utilisation de %num nous a permis d’imprimer la valeur souhaitée sans aucune fonction ni formatage de chaîne.

Formater un nombre flottant en une largeur fixe à l’aide de la fonction round() en Python

On peut aussi utiliser la fonction round() pour fixer le nombre de chiffres après la virgule. Cette fonction limite le nombre de chiffres après la virgule sur le nombre saisi. Il arrondit également le chiffre auquel la limite est fixée à sa valeur intégrale supérieure si le chiffre est supérieur à la valeur 5.

Prenons un nombre à virgule flottante et affectons-le à une variable num. Lors de l’impression, nous utiliserons la fonction round() pour limiter le nombre de chiffres après la virgule.

Exemple de code :

# python 3.x
num = 2.37682
print(round(num, 3))

Production:

2.377

La syntaxe de la fonction round est round(number, digits). Ici l’argument number est obligatoire tandis que l’argument digits est facultatif. number peut aussi être mis comme variable. Si rien n’est passé à l’argument digits, seule la partie intégrale du number est prise comme résultat.

Dans le programme ci-dessus, nous avons passé la valeur 2.37682 au premier argument num, et il a été arrondi à 3 chiffres après la virgule car nous avons passé la valeur 3 au deuxième argument à l’intérieur du round() méthode.

Article connexe - Python Float