Newsgroup: it.comp.lang.delphi
Titolo: Convertire un Float che non è un Float...

Ciao a tutti quelli che hanno aperto questo messagio con un Subject
cosi idiota :D
Come tutti sano esitono 2 tipi di nummeri con la figola... quelli con
la virgola mobile (Float) e quelli con la virgola fissa.
Ora il mio problema è proprio converire un numero da 
'-71.039612'  // questa è una stringa.
                       //  contenuta in una var X : String;
 a il respetivo numero Float ho provato ad usare la funzione
StrToFolat ma mi dice che non è un float valido... in effetti non è un
float perche la virgola sta sempre alla seconda cifra e a sempre lo
stesso numero di cifre decimali (6).
Spero di non dovermi impicare per eliminare il punto trasformare in
LongInt e poi da li dividere e ricavarmi il float....
Spero che qualcuno mi sappia rispondere....

stesso numero di cifre decimali (6).
Che c'entra ?
Il numero che hai scritto in quella stringa *E'* un numero a
virgola mobile.
-- 
Andrea Laforgia (
walkie...@libero.it
)
"Usenet is a strange place" [Dennis Ritchie]

stesso numero di cifre decimali (6).
E che c'entra? Quello e' un float. Però dipende dalle impostazioni del
sistema operativo quale segno usare per la virgola. Hai provato con
'-71,039612' ?
byez.
-- 
(*metallikop*libero*it*)          
{
http://web.tiscali.it/mbsoftware
}

 Spero che qualcuno mi sappia rispondere....
La funzione StrToFloat è quella che fa al caso tuo, solamente che non
riconosce il '.' come separatore decimale.Questo è definito nella globale
"DecimalSeparator".
dall'help di delphi (cosa faremmo senza di lui...)
DECIMALSEPARATOR : Character used to separate the decimal portion of a
number from its integer portion; for example, the period (.) in 3.14.
Default: The standard decimal separator used for your country, as specified
in the Windows Control Panel (International Setting).
In italia, il default è la 'figola'. basta che lo cambi in '.'
(DecimalSeparator := '.') e la StrToFloat funziona.
Però tutta la tua applicazione risentirà della variazione. Se quindi hai
degli edit box in cui digiti dei numeri, devi ricordarti di utilizzare
sempre il punto.
P.S. Personalmente ritengo molto più comodo utilizzare il punto, che guarda
caso è presente nel tastierino numerico.

separatore decimale adottato nel tuo sistema.
Il problema sta proprio qui... ora mi devo scrivere una funzione che
da . mi converta in quella variabile/costante (o quello che è) che mi
hai detto...

virgola mobile.
Teoricamente hai ragione... resta il fatto che non lo fa...

io... percui hanno gia il . di loro
Il separatore e' sempre o la virgola o il punto.
Quando leggi da file converti qualsiasi virgola o punto nel
tuo DecimalSeparator.


Andrea Belli wrote:
... snip ...
scusa, ma la tabella che hai postato era illeggibile.
La riscrivo con passo fisso, magari risulta più chiaro (anche se 
dovrebbe essere stampata in testa a chiunque lavora in Delphi... ;) )
Questa è la tabella presa dall'help di delphi 6
--------------------------------------------
Type                          Range            Significant digits  Size
Real48            2.9 x 10^-39 .. 1.7 x 10^38          11-12          6
Single            1.5 x 10^-45 .. 3.4 x 10^38           7-8           4
Double           5.0 x 10^-324 .. 1.7 x 10^308         15-16          8
Extended        3.6 x 10^-4951 .. 1.1 x 10^4932        19-20         10
Comp                   -2^63+1 .. 2^63 -1              19-20          8
Currency  -922337203685477.5808.. 922337203685477.5807 19-20          8
Ciao.
Mimmo.

 a chiunque lavora in Delphi... ;) )
Confermo.
A volte mi chiedo come fa 'certa gente' a lavorare, senza mai avere visto
l'help nè sforzandosi di farlo.
Poi mi rispondo che è semplice : trova qualche fesso (come il sottoscritto)
che gli risponde sul ng.
(per carità, senza offesa per nessuno, ok ?)

 (per carità, senza offesa per nessuno, ok ?)
Figuriamoci.
:)
Ciao.
Mimmo.