considérer: Comment puis-je le rendre décimal? p> p>
4 Réponses :
jusqu'à la version 3, l'opérateur de division de Python, /, se comportait comme l'opérateur de division de C lorsqu'il est présenté avec deux arguments entier: il renvoie un résultat entier tronqué lorsqu'il y aurait une partie fractionnelle. Voir: PEP 238 P>
xxx pré> en python 2 (et peut-être plus tôt), vous pouvez utiliser: p>
xxx pré> blockQuote>
-7 // 3 = -3 (reste est = 2) en python et -7/3 = -2 (reste = -1) en C / C ++, donc je ne dirais pas que ce comportement est le même en python que dans C / C ++
@ARTUR C'est la différence entre Division du sol VS Divison Standard et Modulus VS Resternder Operators. Plancher et mod oeuvculent vers l'infini négatif, la division standard et le travail restant vers zéro.
Dans Python 2.x, la division fonctionne comme celle-ci ressemble à des langages similaires: Si les deux arguments sont des entiers, le résultat est tronqué à un entier, de sorte que 29/1009 est 0. 0 comme un flotteur est de 0,0. Pour le réparer, jeté à un flotteur avant de diviser: dans Python 3.x, la division agit plus naturellement, vous obtiendrez donc le résultat mathématique correct (dans l'erreur de point flottant). . p> p>
print str(float(numerator)/float(denom))
Il suffit de lancer l'un des opérandes à flotter (). Je vous recommande généralement de casser le numérateur car il localise la distribution au début de l'expression où les lecteurs le verront normalement plus facilement.
Oui, mais cela semblait plus "propre" pour moi juste parce qu'il était plus transparent dans son casting. Mais oui, la coulée seule est suffisante.
Dans votre évaluation, vous mondez le résultat, vous devez plutôt lancer les opérandes. p>
Un peu partout, mais
float code> n'est pas le même que le type code> Decimal code> dans la bibliothèque standard Python. Lorsque vous dites "je veux juste que cela retourne une décimale" Ce que vous voulez vraiment dire, c'est "Je veux juste qu'il renvoie une chaîne représentant une valeur fractionnée en notation décimale", n'est-ce pas?