[Python] Nombre flottant

Résolu
Bonjour,

Dans un programme je dois utiliser des nombres flottants (float) mais lorsque je veux vérifier si le nombre est en float, c'est-à-dire, en le faisant afficher, il m'affiche toujours 0. Le nombre ne va jamais dépasser 1, mais lorsque je fait moi-même les calculs, il serait supposé afficher par exemple 0.18.

                   while x<3: 
                            fInt = 0.0 
                            fInt2 = 0.0 
                            fInt = float(intList[x]) #Liste en int, donc conversion en float 
                            fInt2 = float(intList2[x]) #Liste en int, donc conversion en float 

                            try: 
                                intList3[x] = (fInt2-fInt)/(fInt2+fInt) 

                            except ZeroDivisionError: 
                                intList3[x] = 0.1 

                            finally: 
                                x = x + 1 
                                    str1 = QtCore.QString.number(intList3[x]) 
                                    str2.append(str1 + " - ") 

                   self.txtNom.setText(str2) 


Est-ce que la conversion viens du fait que je le convertit en string pour l'affichage?
Google is your friend.
Wiki is your brain.

5 réponses

  1. J'ai trouvé pourquoi il ne conservait pas le float.

    Pour ceux que sa intéresse, pour forcer une variable à être flottante, on ne doit pas la faire égalé à 0.0, mais bien à 0.1. Et s'il y a plus d'un chiffre après la virgule, pour que ca fonctionne j'ai fait maVariable = 0.001.

    Voilà ce qui m'affiche maintenant : 0.18987822476518396

    Merci quand même. :)
    Google is your friend.
    Wiki is your brain.
    0
    1. Je comprends pas trop car si tu initialises une variable à 0,0 et que t'ajoutes un int, il reste considéré comme un float

      ex:
      >>> a = 0.0
      >>> a = a + 4
      >>> a
      4.0
      >>> b = b/3
      >>> b
      0.33333333333333331

      mais j'ai peut être mal compris ton problème
      0
      1. Je sais mais moi sa faisait:

        >>> a=0.0
        >>> a=a+4
        >>> a
        4

        Comme je l'ai dit, peut-être que sa marchait, mais en faisant la conversion de float en string pour l'affichage dans une LineEdit, il arrondissait.
        0