Maison >développement back-end >Tutoriel Python >Comment arrondir des nombres à virgule flottante à un chiffre significatif en Python ?

Comment arrondir des nombres à virgule flottante à un chiffre significatif en Python ?

DDD
DDDoriginal
2024-11-16 08:57:03488parcourir

How to Round Floating-Point Numbers to One Significant Figure in Python?

Arrondir des nombres à des chiffres significatifs en Python

Lors de l'affichage de nombres à virgule flottante dans une interface utilisateur, vous devez souvent les arrondir à un nombre précis de chiffres significatifs. Python offre un moyen pratique d'y parvenir en utilisant des nombres négatifs.

Pour les entiers, vous pouvez utiliser l'arrondi négatif pour spécifier le nombre de décimales :

>>> round(1234, -3)
1000.0

Pour étendre cette approche à l'arrondi d'un float à un chiffre significatif, vous pouvez utiliser la fonction suivante :

from math import log10, floor

def round_to_1(x):
    return round(x, -int(floor(log10(abs(x)))))

Cette fonction calcule le nombre de décimales à arrondir en fonction de la valeur absolue de le nombre et renvoie la valeur arrondie.

Voici quelques exemples de son fonctionnement :

>>> round_to_1(0.0232)
0.02
>>> round_to_1(1234243)
1000000.0
>>> round_to_1(13)
10.0
>>> round_to_1(4)
4.0
>>> round_to_1(19)
20.0

Notez que pour les flottants supérieurs à 1, vous devrez peut-être les convertir en nombres entiers avant d'arrondir .

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn