2016-04-28 2 views
0

Lorsque je fais ce calcul 2*(5+5/(3+3))*3 Je reçois 30 en Python (2.7). Mais ce qu'il semble être que 2*(5+5/(3+3))*3 est égal à 35. Quelqu'un peut-il me dire pourquoi python me donne la réponse de 30 au lieu de 35? J'ai testé avec JavaScript, Lua et Mac Calculator et ils me montrent 35.Arithmétique est cassé en Python?

Pourquoi Python calcule-t-il mal?

http://ideone.com/yiFJxS

+0

Il est intéressant de Python 3 donne 35 ... – usr2564301

+1

'/' est toujours division entière en Python 2. –

+2

C'est parce que '5/0 6' rendements en python 2 et tout le monde évaluent comme une sortie décimale – Kamehameha

Répondre

6

Cela se produit en raison de la pièce 5/(3 + 3) qui évalavelle à 0. Vous devez utiliser l'un d'eux comme flotteur .

-2

Il faut toujours présumer qu'il est un problème avec quelque chose que vous faites plutôt que d'un langage de codage entier!

Cela fonctionne très bien pour moi dans le shell Python. 35 est la réponse attendue et 35 est ce que nous obtenons! Très probablement quelque chose de votre côté ou un mauvais type/vous avez manqué - commenté quelque chose. C'est à partir de copier coller votre code ci-dessus.

edit: Qui est le plus susceptible de se tromper, un individu? Ou les masses? Le rasoir d'Occam. Dans ce cas, j'ai supposé qu'il utilisait 3 et non 2.7 ce qui a conduit à l'hypothèse correcte car il fonctionne en 3.

+0

Si vous pensez toujours qu'il y a un problème avec vous-même, vous ne trouverez jamais de bugs dans la langue. – erip