[Python] Ricavare ultime cifre
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 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
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
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
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 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
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