Italian community of Lazarus and Free Pascal
Programmazione => Generale => Topic aperto da: xinyiman - Ottobre 17, 2016, 03:50:54 pm
-
Ciao ragazzi, una domanda, se da un file csv ho una stringa così 9.442911E+01 secondo voi qual'è il miglior modo di trasformarlo in un numero leggibile senza perdere di precisione?
-
con cosa lo apri il csv, con un foglio elettronico o con un editor di testo?
se apri con un foglio elettronico, puoi evitare di avere i numeri con la notazione scientifica formattando la colonna
se invece il file csv lo apri con un editor di testo, puoi usare questa funzione
http://www.freepascal.org/docs-html/rtl/sysutils/formatfloat.html (http://www.freepascal.org/docs-html/rtl/sysutils/formatfloat.html)
-
Scusa. Non ho capito bene.
Vuoi leggerla o scriverla quella stringa?
Cioè devi farne il parsing? Per scriverla penso basti il format...
-
https://sourceforge.net/p/lazarusiug/liug/HEAD/tree/trunk/JavaUtils/src/system/SystemTypes.pas
Per il parsing c'è qualcosa qui. Prova a vedere 😊
-
https://sourceforge.net/p/lazarusiug/liug/HEAD/tree/trunk/JavaUtils/src/system/SystemTypes.pas
Per il parsing c'è qualcosa qui. Prova a vedere 😊
Io quel dato lo devo leggere da un file csv
-
Per farla semplice semplice, non basterebbe?
valore:=StrToFloat('9.331780E+01');
Self.Memo1.Text:=FormatFloat('#,##0.0000000000',valore);
-
Funziona? Allora sì. Non funziona? Allora no :) :p
-
Secondo quello che so io al riguardo l'esempio menzionato prima
9.331780E+01
dovrebbe equivalere a
93.31780
Quindi direi che funziona. Almeno se le mie nozioni matematiche non fanno acqua da tutte le parti
-
la E sta ad indicare quante volte devi moltiplicare per 10 quindi il risultato è esatto