Il 14/04/2015 10:23, Giuseppe Amato ha scritto:
Il giorno 14 aprile 2015 01:26, Carpediem <i.carped...@tiscali.it
<mailto:i.carped...@tiscali.it>> ha scritto:
A questo punto, quindi, se chiedo di stampare s invece che
ritrovarmi il valore 1 ottengo 0
Beh il punto è che stai chiedendo una cosa e ne vuoi un'altra.
>>> sb = 3287628061
>>> type(sb)
<type 'long'>
>>> mb = sb / 60
>>> type(mb)
<type 'long'>
>>> mb
54793801L
>>> m1 = int(mb)
>>> type(m1)
<type 'int'>
>>> m1
54793801
>>> s = int ((mb-m1)*60)
>>> type(s)
<type 'int'>
>>> s
0
Nel codice che hai scritto i decimali non sono presi in
considerazione, perché stai facendo operazioni su interi.
Inoltre, la funzione int() non arrotonda ma converte, ciò vuol dire
che 0.1 o 0.99 o 0.11111111111111112344 daranno lo stesso risultato:
0, che è la parte intera del numero.
Non si tratta di un problema di virgola mobile, ma un problema di
funzione, come già ti dicevano usa round().
Ciao
Grazie a te e a tutti quelli che si sono adoperati a rispondermi. Ho
usato round e ho risolto il problema. Grazie ancora a tutti
____________________________
Giuseppe Amato
e-mail: giuam...@gmail.com <mailto:giuam...@gmail.com>
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python