3 Réponses :
impression (ou plutôt la représentation du point flottant pour
float .__ str __ code>) arrondit la sortie.
41063625 ** (1.0 / 3) Code> est inférieur à 345, alors lorsque vous prenez le
int code> de celui-ci, vous obtenez 344 plutôt que 345. P>
In [19]: int(round(41063625 ** (1.0/3)))
Out[19]: 345
Ah bien qui a du sens - ne savait pas que c'était une fonctionnalité de imprimer code> pour arrondi comme ça. Merci!
Il pourrait être illustratif de poster la sortie de STR (41063625 ** (1,0 / 3)) code> car c'est ce que
impression code> est en réalité imprimée.
@ A.R.S.: En 3.2+ Float .__ STR __ CODE> Utilise le
REC CODE>, qui utilise le nombre minimum de chiffres sur arrondir sur le flotteur d'origine. Par exemple:
Imprimer (41063625 ** (1.0 / 3)) Code> Sorties
344.99999999999999 CODE>.
parce que 41063625 ** (1.0 / 3) code> n'est pas 345.0:
In [7]: 41063625 ** (1.0/3)
Out[7]: 344.9999999999999
In [8]: int(344.9999999999999)
Out[8]: 344
Eh bien, ce que j'ai eu des calculs est quelque chose comme ceci:
>>> 41063625 ** (1.0/3) 344.9999999999999 >>> int(345.0) 345 >>> int(41063625 ** (1.0/3)) 344