Newsgroup: it.comp.lang.delphi
Titolo: Tipo Double

Scusate la mia ignoranza, ma sto cercando di farmi una cultura sui tipi di
varibili utilizzati da Delphi.
Ho letto l'Help di Delphi 6 che, a proposito delle variabili Double, dice
che occupano da 15-16 caratteri significativi.
Ma questo cosa vuol dire esattamente ? Un numero occupa 15 o 16 caratteri ?
Grazie per l'aiuto e scusate per la figuraccia da principiante.
Donato

 Ma questo cosa vuol dire esattamente ? Un numero occupa 15 o 16 caratteri
?
occupa 8 byte
L'help č molto chiaro:
Type    | Range                                        | Significant digits
| Size in bytes
Double | 5.0 x 10^-324 .. 1.7 x 10^308  | 15-16               |  8
Ciao
Matteo

Double | 5.0 x 10^-324 .. 1.7 x 10^308  | 15-16               |  8
La formattazione e' stata persa.
E' fondamentale che non utilizzi font proporzionali e tabulazioni per questi
post.
Ciao
-- 
Morde. 
morde[at]programmer[.]net

 post.
Eh, me ne sono accorto dopo... in realtŕ avevo corretto il problema dei font
proporzionali, ma non avevo considerato il "taglio" sulla lunghezza delle
righe... :(
Probabilmente se il testo "size in bytes" fosse stato solo "size", sarebbe
venuto bene...
In quale modo dovrei non utilizzare font proporzionali??? Non posso mica
decidere io quale font usa il client che legge... dovrei postare in html per
far arrivare la mia formattazione, ma verrei linciato...
La mia configurazione del newsreader (OE5.5) č quella di default, con font
proporzionale... non ho modificato volutamente le impostazioni di
fabbrica...
Spero cmq che il significato sia arrivato a destinazione... la tabella non č
stata poi stravolta in modo incomprensibile... infondo č un pezzetto di
Help... ;)
Ciao
Matteo

Help... ;)
Certamente :) nessun problema.
PS: ti faccio un piccolo esempietto, questa e' il mio ascii art preferito
                  ,%%%,      
                 ,%%%` %==-- 
                ,%%`( '|     
               ,%%@ /\_/     
     ,%.-"""--%%% "@@__      
    %%/             |__`\    
   .%'\     |   \   /  //    
   ,%' >   .'----\ |  [/
      < <<`       ||      
       `\\\       ||        
         )\\      )\
 ^^^jgs^^"""^^^^^^""^^^^^^^^^^
Ora, se lo visualizzi in proporzionale non vedi che un sgorbio, ma se ci
piazzi un courier... cambia tutto ^__^.
Chiudo questa lunga digressione scusandomi con il ng per l'OT.
Ogni tanto fa bene riprendere la cultura usenet.
P.S.
L'ascii art da me riprodotta e' del mitico Joan G. Stark (jgs).
http://www.geocities.com/SoHo/7373/


 ha scritto nel messaggio
news:b9qaep$luips$1...@ID-123015.news.dfncis.de...


 costituito da 15 o da 16 caratteri ?
Tutto verge sul concetto di numeri a virgola mobile.
Visto che sono molto pigro ^__^ ti passo il link su google con i campi di
ricerca preimpostati:
http://www.google.it/search?q=mantissa+floating+point&ie=UTF-8&oe=UTF-8&hl=i
t&lr=
(tutto su una unica riga).
L'unica spiegazione che posso darti (non sono un matematico) è che quando si
gioca con i numeri reali (e nell'esempio i doubble) non puoi avere una
precisione nei decimali a piacere. Ci sarà sempre una approssimazione dopo n
decimali. Il compromesso da fare è quello tra il numero di decimali
soddisfacenti e la dimensione in byte del campo.
Mi ricordo il primo libro di Turbo Pascal  che lessi (TP3 di Jeff Duntemann
o qualcosa del genere...) che mostrava appunto un esempio eloquente:
(a memoria e trasportato in Delphi)
var r:real;
begin
 r:=1;
 r:=r/3;
 if r*3=1 then showmessage('ok')
 else showmessage ('Errore');
end;
Se la precisione dei decimali fosse infinita, l'esempio darebbe "OK", invece
1/3*3 non da 1, ma probabilmente darà 0.99999999999
Cosa simpatica è che se al posto di real (che in delphi è convertito in
Double) ci metto extended (19-20 cifre significative), il risultato è "OK"
Spero di non averti fatto più confusione ;)
Ciao
Matteo

 ha scritto nel messaggio
news:b9qlo0$mbgs0$1...@ID-123015.news.dfncis.de...
