Maison > développement back-end > Tutoriel Python > Comment vérifier si un float représente un entier en Python ?

Comment vérifier si un float représente un entier en Python ?

Susan Sarandon
Libérer: 2024-11-13 01:11:02
original
538 Les gens l'ont consulté

How to Check if a Float Represents an Integer in Python?

Détermination de l'intégrité des valeurs flottantes

Dans cet extrait de code, vous recherchez la plus grande racine cubique qui est un nombre entier, inférieur à 12 000 :

processing = True
n = 12000
while processing:
    n -= 1
    if n ** (1/3) == #checks to see if this has decimals or not
Copier après la connexion

Pour vérifier si une valeur flottante est un entier, vous pouvez utiliser la méthode float.is_integer() :

>>> (1.0).is_integer()
True
>>> (1.555).is_integer()
False
Copier après la connexion

Notez que dans Python 2, 1/3 donne 0 en raison de la division au sol pour les opérandes entiers, et l'arithmétique à virgule flottante peut être inexacte. Ajuster la boucle dans cette optique :

for n in range(12000, -1, -1):
    if (n ** (1.0/3)).is_integer():
        print n
Copier après la connexion

On obtient les résultats attendus :

27
8
1
0
Copier après la connexion

Cependant, en raison de l'imprécision de l'arithmétique à virgule flottante, les nombres supérieurs à 3 au cube ( dont 10648) sont omis. Pour résoudre ce problème, vous pouvez plutôt rechercher des nombres proches du nombre entier :

import math

for n in range(12000, -1, -1):
    if math.isclose((n ** (1.0/3)), round(n ** (1.0/3))):
        print n
Copier après la connexion

Cette variante génère :

10648
27
8
1
0
Copier après la connexion

Pour Python 3.5 et versions ultérieures, vous pouvez utiliser les mathématiques. Fonction isclose() pour vérifier si une valeur à virgule flottante se trouve dans une marge personnalisable.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal