Comment vérifier si un nombre est un flottant en Python


Meilleure réponse

En Python, vous pouvez connaître le type densemble de données dans nimporte quel programme, en utilisant le type () function.

Si un nombre est flottant, le code affichera quand même le type. Un exemple:

a = 2 #integer

b = "Cosmos" #string

c = 3.4 #float

print(type(a))

print(type(b))

print(type(c))

La sortie affichera naturellement le type de données de chacun, la valeur de la variable c étant float. Cest donc le moyen le plus simple et le plus rapide de savoir si un type de données est float.

Hope ça aide 🙂

Réponse

Cela dépend de la langue. Certains langages (comme JavaScript) ont un opérateur typeof que vous pouvez utiliser pour faire la différence. Bien quen JavaScript, cela ne vous aidera pas, car il nexiste pas dentier en JavaScript. JavaScript a un type de nombre unifié qui encapsule à la fois les entiers et les flottants, donc les moyens de le vérifier incluent

n - Math.floor(n) > 0

// 3.14 - 3.00 = 0.14. 0.14 > 0.00

n.toString().indexOf(".") == -1

// indexOf() returns -1 when it can’t find the given substring

Si vous utilisez C (ou un langage qui a un système de type statique et nominal), vous pouvez faire quelque chose de similaire:

(n - (int) n) > 0

Ce qui se passe ici, cest que lopérateur (int) convertit son opérande pour le forcer à être un entier. ceci «coupe» la partie décimale, ayant ainsi le même effet que Math.floor de JavaScript.

Il y a cependant une mise en garde. Parfois, de petites différences sont trop petites pour lopérateur dégalité. 1 == 0.9999999999999999 est faux, mais 1 == 0.99999999999999999 est vrai. En C, par exemple, vous devrez peut-être remplacer > 0 par > FLT\_EPSILON et #include . FLT\_EPSILON est une constante représentant le plus petit flottant représentable. Vous pouvez lutiliser lorsque vous différez deux flottants et assurez-vous quils ne se comparent pas par erreur. Vous faites cela en les soustrayant et en vérifiant que la différence est supérieure («non égale») ou inférieure à («égale») FLT\_EPSILON.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *