Fondamentalement, j'ai un numéro dire 5.112 Je veux soustraire le soustraire dans chaque itération de 0,001 comme 5.111, 5.110, 5.109, 5.108, etc. p>
Actuellement, je pense utiliser la méthode Split pour séparer le point de formulaire de numéro de compte, puis soustraire l'index 1 de 1 et rejoindre. P>
Je me demandais simplement s'il y a une autre meilleure façon de le faire. P>
3 Réponses :
Si vous deviez faire
x = 5.112
while True:
x -= .001
print(x)
Sur mon système, 5.112 - 4 * .001 code> est 5.108000000000000005 code>. Utilisez décimal code> à la place. J'ai posté ma propre réponse .
Vous avez identifié le problème correctement, mais votre solution souffre du même problème ...
Vous pouvez utiliser une compréhension numpy et la liste, comme:
import numpy start = 5.112 [start-val for val in numpy.arange(0, 0.1, 0.001)]
Avez-vous essayé votre code? La sortie n'est pas correcte.
Les flotteurs sont imprécis (voir Réponse de Frank et Est-ce que le point flottant est cassé? ).
Utilisez sortie: p> décimal code> à la place. p>
Pourquoi ne pas utiliser A pour boucle et soustraire réellement
0,001 code>?@Anwarvic parce que Point flottant Math est (probablement) cassé (moi paraphraser le titre de la question)