Il giorno 14 aprile 2015 01:26, Carpediem <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

-- 
____________________________
Giuseppe Amato
e-mail: giuam...@gmail.com
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a