[Python] Ricavare ultime cifre

2009-11-25 Per discussione Federico
Salve a tutti, ho un piccolo problema con dati di tipo float. Dovrei
recuperare le ultime cifre del modulo time(). Ho provato con len ma
niente da fare, mi funziona solo con le stringhe. Come dovrei trattare i
float??

Grazie a tutti

Federico Sanna

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Ricavare ultime cifre

2009-11-25 Per discussione Marco Beri
2009/11/25 Federico 

> Salve a tutti, ho un piccolo problema con dati di tipo float. Dovrei
> recuperare le ultime cifre del modulo time(). Ho provato con len ma
> niente da fare, mi funziona solo con le stringhe. Come dovrei trattare i
> float??
>

Vuoi la parte decimale:

>>> import time
>>> f=time.time()
>>> f
1259165727.2095261
>>> f - int(f)
0.20952606201171875

Vuoi in stringa:
>>> str(f - int(f))

Vuoi solo per le prime 7 cifre decimali:
>>> ("%.7f" % f).split(".")[-1]
'2095261'

Ciao.
Marco.

-- 
http://ThinkCode.TV - Screencast e videocorsi di programmazione
http://stacktrace.it - Aperiodico di resistenza informatica
http://beri.it - Blog di una testina di vitello
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Ricavare ultime cifre

2009-11-25 Per discussione Daniele Varrazzo
On Wed, 25 Nov 2009 17:14:25 +0100, Federico  wrote:
> Salve a tutti, ho un piccolo problema con dati di tipo float. Dovrei
> recuperare le ultime cifre del modulo time(). Ho provato con len ma
> niente da fare, mi funziona solo con le stringhe. Come dovrei trattare i
> float??

Hai problemi coi decimali? Non sei il solo...

http://www.ilsole24ore.com/art/SoleOnLine4/Italia/2009/11/poste-italiane-disguido-addebiti-gonfiati.shtml


-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Ricavare ultime cifre

2009-11-25 Per discussione max
Marco Beri ha scritto:
> 2009/11/25 Federico mailto:jakal...@tiscali.it>>
> 
> Salve a tutti, ho un piccolo problema con dati di tipo float. Dovrei
> recuperare le ultime cifre del modulo time(). Ho provato con len ma
[...]
> Vuoi la parte decimale:
> 
>  >>> import time
>  >>> f=time.time()
>  >>> f
> 1259165727.2095261
>  >>> f - int(f)
> 0.20952606201171875

Oppure le ultime 3 cifre prima della virgola...

int(f-int(f/1000)*1000)

se interessano n cifre cambi 1000 con 10**n :)

hth, max

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Ricavare ultime cifre

2009-11-25 Per discussione Federico
Il giorno mer, 25/11/2009 alle 18.34 +0100, max ha scritto:
> Marco Beri ha scritto:
> > 2009/11/25 Federico mailto:jakal...@tiscali.it>>
> > 
> > Salve a tutti, ho un piccolo problema con dati di tipo float. Dovrei
> > recuperare le ultime cifre del modulo time(). Ho provato con len ma
> [...]
> > Vuoi la parte decimale:
> > 
> >  >>> import time
> >  >>> f=time.time()
> >  >>> f
> > 1259165727.2095261
> >  >>> f - int(f)
> > 0.20952606201171875
> 
> Oppure le ultime 3 cifre prima della virgola...
> 
> int(f-int(f/1000)*1000)
> 
> se interessano n cifre cambi 1000 con 10**n :)
> 
> hth, max

Sto facendo un pò di confusione nel capire come funziona, allora io
teoricamente dovrei solo recuperare le ultime due cifre 

Esempio:

1259184132.8545489

devo recuperare 89

oppure

1259184163.492027

devo recuperare 27 

e cosi via. Ma non riesco proprio a capire come costruire il tutto e
capire ovviamente come farlo e il perché.

Grazie ancora

Federico

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Ricavare ultime cifre

2009-11-25 Per discussione Marco Beri
2009/11/25 Federico 

>
> Sto facendo un pò di confusione nel capire come funziona, allora io
> teoricamente dovrei solo recuperare le ultime due cifre
>
> Esempio:
>
> 1259184132.8545489
>
> devo recuperare 89
>
> oppure
>
> 1259184163.492027
>
> devo recuperare 27
>


Beh cosi` e` facilissimo:

str(f)[-2:]

Pero` a cosa ti serve recuperare le ultime due cifre?


Ciao.
Marco.


-- 
http://ThinkCode.TV - Screencast e videocorsi di programmazione
http://stacktrace.it - Aperiodico di resistenza informatica
http://beri.it - Blog di una testina di vitello
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Ricavare ultime cifre

2009-11-25 Per discussione Manlio Perillo
Federico ha scritto:
> Salve a tutti, ho un piccolo problema con dati di tipo float. Dovrei
> recuperare le ultime cifre del modulo time(). 

Per farci cosa?

Tieni conto, comunque, che la funzione time di Python restituisce un
float per uniformità, ma l'API del sistema operativo restituisce il
numero di secondi dalla Epoca, ed il numero di
millisecondi/microsecondi (o altro, a seconda dell'API).

Su sistemi POSIX, ad esempio:
http://www.opengroup.org/onlinepubs/009695399/functions/gettimeofday.html

Ecco un pezzo di codice che fa il lavoro.
NOTA che potrebbe non essere portabile, dato che le dimensioni di time_t
e suseconds_t potrebbero variare in base alla piattaforma:

from ctypes import *

class timeval(Structure):
_fields_ = [ ('tv_sec', c_long),
 ("tv_usec", c_long) ]

libc = CDLL('libc.so.6')

tv = timeval()
libc.gettimeofday(pointer(tv), None)

print tv.tv_sec
print tv.tv_usec


Al momento di scrivere questo messaggio, ottengo:
1259190076
993246


In questo contesto, non riesco proprio ad immaginare cosa tu voglia fare
con le ultime due cifre decimali del valore:
tv.tv_sec + tv.tv_usec / 100.


> [...]


Ciao  Manlio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python