Newsgroup: it.comp.lang.visual-basic
Titolo: Somme sbagliate

ho riscontrato una cosa molto spiacevole in vb6.
Provate a eseguire questa semplice routine:
Private Sub Command1_Click()
Dim v As Single
Dim i As Long
   v = 0
   For i = 1 To 100
      v = v + 0.0001
      Debug.Print v
   Next i
End Sub
il risultato dei primi 50 cicli (provato su due pc diversi e anche con il
programma compilato!) è questo:
0,0001   0,0002   0,0003   0,0004   0,0005   0,0006   0,0007   0,0008
0,0009   9,999999E-04   0,0011   0,0012   0,0013   0,0014   0,0015   0,0016
0,0017   0,0018   1,899999E-03   1,999999E-03   2,099999E-03   0,0022
0,0023   0,0024   0,0025   0,0026   0,0027   0,0028   0,0029   0,003
0,0031   0,0032   0,0033   0,0034   0,0035   0,0036   0,0037   3,800001E-03
3,900001E-03   4,000001E-03   0,0041   0,0042   0,0043   0,0044   0,0045
0,0046   4,699999E-03   4,799999E-03   4,899999E-03   4,999999E-03
L'errore è presente per somme con più di 1 decimale, più decimali ci sono +
errori si riscontrano.
Qualcuno sa darmi una spiegazione ?
Turk182

 con il programma compilato!) č questo:
Dopo i primi 50 cicli si č piantato?
Alberto

Il 15/01/2004 17.17, Turk182 scrisse:

Dove sarebbe l'errore?
;-)
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!

 Dove sarebbe l'errore?
Imho che non formatta i numeri sempre allo stesso modo, anche io mi sono
sempre chiesto il perchè...
-- 
Le persone non sono il proprio comportamento: devi sempre andare oltre,
essere flessibile, capire il punto di vista degli altri, interpretarne i
comportamenti ed intuirne le esigenze.
Per rispondere in privato elimina
dall'indirizzo "togliquesto"
MasterDavidex
David Ruscelli

 Qualcuno sa darmi una spiegazione ?
Vedi qui:
http://tinyurl.com/2zosw
termoPilucco

 Alberto
No, non mi si č piantato, ho provato a arivare anche a 100.000 ripetizioni,
e ogni tanto si ripresentavano gli errori di arrotondamento

Non si tratta di un errore di rappresentazione numerica, il numero č
memorizzato proprio come čvisualizzato. 
Il problema deriva dal formato di rappresentazione del numero in
memoria da parte del Visual Basic con riferimento ai numeri in singola
e doppia precisione.
Il problema non si pone, ad esempio, se si utilizza una calcolatrice
programmabile (es. HP41) e non esisteva quando si utilizzavano i primi
elaboratori Hewlett-Packard (es. HP85) il cui linguaggio di 
programmazione era progettato per il trattamento dei numeri con la
massima precisione possibile.
Prova a definire anche per la variabile v come long :
 Private Sub Command1_Click()
 Dim v As long
 Dim i As Long
    v = 0
    For i = 1 To 100
       v = v + 1
       Debug.Print v/10000
    Next i
 
 End Sub
Alessandro.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


 L'errore è che 0,0009  + 0,0001 = 0,0010 e non 9,999999E-04   (ovvero
0,000999999)
ho capito che arrotondando va tutto a posto, ma mi sembra inconcepibile che
sbagli a fare le somme !
Turk182

 sbagli a fare le somme !
Non hai idea di quante volte sia stata scritta questa frase su questo NG.
Prova a vedere quanti flame ne sono nati usando 
groups.google.com
ciao



Puoi postare i risultati di questo test?
Non č che l'inghippo sia nel CStr?
Ciao
Alberto


Ti metto la prova con mille cicli (100000 sono un po troppi da postare!)
Non credo che l'inghippo sia in conversione a stringa, la variabile contiene
effetivamente quel valore !!!
Ciao, Turk182
0,0001   0,0002   0,0003   0,0004   0,0005   0,0006   0,0007   0,0008
0,0009   9,999999E-04   0,0011   0,0012   0,0013   0,0014   0,0015   0,0016
0,0017   0,0018   1,899999E-03   1,999999E-03   2,099999E-03   0,0022
0,0023   0,0024   0,0025   0,0026   0,0027   0,0028   0,0029   0,003
0,0031   0,0032   0,0033   0,0034   0,0035   0,0036   0,0037   3,800001E-03
3,900001E-03   4,000001E-03   0,0041   0,0042   0,0043   0,0044   0,0045
0,0046   4,699999E-03   4,799999E-03   4,899999E-03   4,999999E-03
5,099999E-03   5,199999E-03   5,299998E-03   5,399998E-03   5,499998E-03
5,599998E-03   5,699998E-03   5,799998E-03   5,899997E-03   5,999997E-03
6,099997E-03   6,199997E-03   6,299997E-03   6,399997E-03   6,499996E-03
6,599996E-03   6,699996E-03   6,799996E-03   6,899996E-03   6,999996E-03
7,099995E-03   7,199995E-03   7,299995E-03   7,399995E-03   7,499995E-03
7,599995E-03   7,699994E-03   7,799994E-03   7,899994E-03   7,999994E-03
8,099994E-03   8,199994E-03   8,299993E-03   8,399993E-03   8,499993E-03
8,599993E-03   8,699993E-03   8,799993E-03   8,899992E-03   8,999992E-03
9,099992E-03   9,199992E-03   9,299992E-03   9,399991E-03   9,499991E-03
9,599991E-03   9,699991E-03   9,799991E-03   9,899991E-03   9,99999E-03
1,009999E-02   1,019999E-02   1,029999E-02   1,039999E-02   1,049999E-02
1,059999E-02   1,069999E-02   1,079999E-02   1,089999E-02   1,099999E-02
1,109999E-02   1,119999E-02   1,129999E-02   1,139999E-02   1,149999E-02
1,159999E-02   1,169999E-02   1,179999E-02   1,189999E-02   1,199999E-02
1,209999E-02   1,219999E-02   1,229999E-02   1,239999E-02   1,249999E-02
1,259999E-02   1,269999E-02   1,279999E-02   1,289999E-02   1,299999E-02
1,309999E-02   1,319999E-02   1,329998E-02   1,339998E-02   1,349998E-02
1,359998E-02   1,369998E-02   1,379998E-02   1,389998E-02   1,399998E-02
1,409998E-02   1,419998E-02   1,429998E-02   1,439998E-02   1,449998E-02
1,459998E-02   1,469998E-02   1,479998E-02   1,489998E-02   1,499998E-02
1,509998E-02   1,519998E-02   1,529998E-02   1,539998E-02   1,549998E-02
1,559998E-02   1,569998E-02   1,579998E-02   1,589998E-02   1,599998E-02
1,609998E-02   1,619998E-02   1,629998E-02   1,639998E-02   1,649998E-02
1,659998E-02   1,669998E-02   1,679998E-02   1,689998E-02   1,699998E-02
1,709998E-02   1,719998E-02   1,729998E-02   1,739998E-02   1,749998E-02
1,759998E-02   1,769998E-02   1,779998E-02   1,789998E-02   1,799998E-02
1,809998E-02   1,819998E-02   1,829998E-02   1,839998E-02   1,849998E-02
1,859998E-02   1,869998E-02   1,879998E-02   1,889998E-02   1,899998E-02
1,909998E-02   1,919997E-02   1,929997E-02   1,939997E-02   1,949997E-02
1,959997E-02   1,969997E-02   1,979997E-02   1,989997E-02   1,999997E-02
2,009997E-02   2,019997E-02   2,029997E-02   2,039997E-02   2,049997E-02
2,059997E-02   2,069997E-02   2,079997E-02   2,089997E-02   2,099997E-02
2,109997E-02   2,119997E-02   2,129997E-02   2,139997E-02   2,149997E-02
2,159997E-02   2,169997E-02   2,179997E-02   2,189997E-02   2,199997E-02
2,209997E-02   2,219997E-02   2,229997E-02   2,239997E-02   2,249997E-02
2,259997E-02   2,269997E-02   2,279997E-02   2,289997E-02   2,299997E-02
2,309997E-02   2,319997E-02   2,329997E-02   2,339997E-02   2,349997E-02
2,359997E-02   2,369997E-02   2,379997E-02   2,389997E-02   2,399997E-02
2,409997E-02   2,419997E-02   2,429997E-02   2,439997E-02   2,449997E-02
2,459997E-02   2,469997E-02   2,479997E-02   2,489997E-02   2,499996E-02
2,509996E-02   2,519996E-02   2,529996E-02   2,539996E-02   2,549996E-02
2,559996E-02   2,569996E-02   2,579996E-02   2,589996E-02   2,599996E-02
2,609996E-02   2,619996E-02   2,629996E-02   2,639996E-02   2,649996E-02
2,659996E-02   2,669996E-02   2,679996E-02   2,689996E-02   2,699996E-02
2,709996E-02   2,719996E-02   2,729996E-02   2,739996E-02   2,749996E-02
2,759996E-02   2,769996E-02   2,779996E-02   2,789996E-02   2,799996E-02
2,809996E-02   2,819996E-02   2,829996E-02   2,839996E-02   2,849996E-02
2,859996E-02   2,869996E-02   2,879996E-02   2,889996E-02   2,899996E-02
2,909996E-02   2,919996E-02   2,929996E-02   2,939996E-02   2,949996E-02
2,959996E-02   2,969996E-02   2,979996E-02   2,989996E-02   2,999996E-02
3,009996E-02   3,019996E-02   3,029996E-02   3,039996E-02   3,049996E-02
3,059996E-02   3,069996E-02   3,079996E-02   3,089995E-02   3,099995E-02
3,109995E-02   3,119995E-02   3,129996E-02   3,139996E-02   3,149996E-02
3,159996E-02   3,169996E-02   3,179996E-02   3,189997E-02   3,199997E-02
3,209997E-02   3,219997E-02   3,229997E-02   3,239997E-02   3,249998E-02
3,259998E-02   3,269998E-02   3,279998E-02   3,289998E-02   3,299998E-02
3,309999E-02   3,319999E-02   3,329999E-02   3,339999E-02   3,349999E-02
0,0336   0,0337   0,0338   0,0339   0,034   0,0341   3,420001E-02
3,430001E-02   3,440001E-02   3,450001E-02   3,460001E-02   3,470001E-02
3,480002E-02   3,490002E-02   3,500002E-02   3,510002E-02   3,520002E-02
3,530002E-02   3,540003E-02   3,550003E-02   3,560003E-02   3,570003E-02
3,580003E-02   3,590003E-02   3,600004E-02   3,610004E-02   3,620004E-02
3,630004E-02   3,640004E-02   3,650004E-02   3,660005E-02   3,670005E-02
3,680005E-02   3,690005E-02   3,700005E-02   3,710005E-02   3,720006E-02
3,730006E-02   3,740006E-02   3,750006E-02   3,760006E-02   3,770006E-02
3,780007E-02   3,790007E-02   3,800007E-02   3,810007E-02   3,820007E-02
3,830007E-02   3,840008E-02   3,850008E-02   3,860008E-02   3,870008E-02
3,880008E-02   3,890008E-02   3,900009E-02   3,910009E-02   3,920009E-02
3,930009E-02   3,940009E-02   3,950009E-02   0,0396001   0,0397001
0,0398001   0,0399001   0,0400001   4,010011E-02   4,020011E-02
4,030011E-02   4,040011E-02   4,050011E-02   4,060011E-02   4,070012E-02
4,080012E-02   4,090012E-02   4,100012E-02   4,110012E-02   4,120012E-02
4,130013E-02   4,140013E-02   4,150013E-02   4,160013E-02   4,170013E-02
4,180013E-02   4,190014E-02   4,200014E-02   4,210014E-02   4,220014E-02
4,230014E-02   4,240014E-02   4,250015E-02   4,260015E-02   4,270015E-02
4,280015E-02   4,290015E-02   4,300015E-02   4,310016E-02   4,320016E-02
4,330016E-02   4,340016E-02   4,350016E-02   4,360016E-02   4,370017E-02
4,380017E-02   4,390017E-02   4,400017E-02   4,410017E-02   4,420017E-02
4,430018E-02   4,440018E-02   4,450018E-02   4,460018E-02   4,470018E-02
4,480018E-02   4,490019E-02   4,500019E-02   4,510019E-02   4,520019E-02
4,530019E-02   4,540019E-02   0,0455002   0,0456002   0,0457002   0,0458002
0,0459002   0,0460002   4,610021E-02   4,620021E-02   4,630021E-02
4,640021E-02   4,650021E-02   4,660022E-02   4,670022E-02   4,680022E-02
4,690022E-02   4,700022E-02   4,710022E-02   4,720023E-02   4,730023E-02
4,740023E-02   4,750023E-02   4,760023E-02   4,770023E-02   4,780024E-02
4,790024E-02   4,800024E-02   4,810024E-02   4,820024E-02   4,830024E-02
4,840025E-02   4,850025E-02   4,860025E-02   4,870025E-02   4,880025E-02
4,890025E-02   4,900026E-02   4,910026E-02   4,920026E-02   4,930026E-02
4,940026E-02   4,950026E-02   4,960027E-02   4,970027E-02   4,980027E-02
4,990027E-02   5,000027E-02   5,010027E-02   5,020028E-02   5,030028E-02
5,040028E-02   5,050028E-02   5,060028E-02   5,070028E-02   5,080029E-02
5,090029E-02   5,100029E-02   5,110029E-02   5,120029E-02   5,130029E-02
0,0514003   0,0515003   0,0516003   0,0517003   0,0518003   0,0519003
5,200031E-02   5,210031E-02   5,220031E-02   5,230031E-02   5,240031E-02
5,250032E-02   5,260032E-02   5,270032E-02   5,280032E-02   5,290032E-02
5,300032E-02   5,310033E-02   5,320033E-02   5,330033E-02   5,340033E-02
5,350033E-02   5,360033E-02   5,370034E-02   5,380034E-02   5,390034E-02
5,400034E-02   5,410034E-02   5,420034E-02   5,430035E-02   5,440035E-02
5,450035E-02   5,460035E-02   5,470035E-02   5,480035E-02   5,490036E-02
5,500036E-02   5,510036E-02   5,520036E-02   5,530036E-02   5,540036E-02
5,550037E-02   5,560037E-02   5,570037E-02   5,580037E-02   5,590037E-02
5,600037E-02   5,610038E-02   5,620038E-02   5,630038E-02   5,640038E-02
5,650038E-02   5,660038E-02   5,670039E-02   5,680039E-02   5,690039E-02
5,700039E-02   5,710039E-02   5,720039E-02   0,0573004   0,0574004
0,0575004   0,0576004   0,0577004   0,0578004   5,790041E-02   5,800041E-02
5,810041E-02   5,820041E-02   5,830041E-02   5,840041E-02   5,850042E-02
5,860042E-02   5,870042E-02   5,880042E-02   5,890042E-02   5,900043E-02
5,910043E-02   5,920043E-02   5,930043E-02   5,940043E-02   5,950043E-02
5,960044E-02   5,970044E-02   5,980044E-02   5,990044E-02   6,000044E-02
6,010044E-02   6,020045E-02   6,030045E-02   6,040045E-02   6,050045E-02
6,060045E-02   6,070045E-02   6,080046E-02   6,090046E-02   6,100046E-02
6,110046E-02   6,120046E-02   6,130046E-02   6,140047E-02   6,150047E-02
6,160047E-02   6,170047E-02   6,180047E-02   6,190047E-02   6,200048E-02
6,210048E-02   6,220048E-02   6,230048E-02   6,240048E-02   6,250048E-02
6,260049E-02   6,270049E-02   6,280049E-02   6,290049E-02   6,300049E-02
6,310049E-02   0,0632005   0,0633005   0,0634005   0,0635005   0,0636005
0,0637005   6,380051E-02   6,390051E-02   6,400051E-02   6,410051E-02
6,420051E-02   6,430051E-02   6,440052E-02   6,450052E-02   6,460052E-02
6,470052E-02   6,480052E-02   6,490052E-02   6,500053E-02   6,510053E-02
6,520053E-02   6,530053E-02   6,540053E-02   6,550054E-02   6,560054E-02
6,570054E-02   6,580054E-02   6,590054E-02   6,600054E-02   6,610055E-02
6,620055E-02   6,630055E-02   6,640055E-02   6,650055E-02   6,660055E-02
6,670056E-02   6,680056E-02   6,690056E-02   6,700056E-02   6,710056E-02
6,720056E-02   6,730057E-02   6,740057E-02   6,750057E-02   6,760057E-02
6,770057E-02   6,780057E-02   6,790058E-02   6,800058E-02   6,810058E-02
6,820058E-02   6,830058E-02   6,840058E-02   6,850059E-02   6,860059E-02
6,870059E-02   6,880059E-02   6,890059E-02   6,900059E-02   0,0691006
0,0692006   0,0693006   0,0694006   0,0695006   0,0696006   6,970061E-02
6,980061E-02   6,990061E-02   7,000061E-02   7,010061E-02   7,020061E-02
7,030062E-02   7,040062E-02   7,050062E-02   7,060062E-02   7,070062E-02
7,080062E-02   7,090063E-02   7,100063E-02   7,110063E-02   7,120063E-02
7,130063E-02   7,140063E-02   7,150064E-02   7,160064E-02   7,170064E-02
7,180064E-02   7,190064E-02   7,200065E-02   7,210065E-02   7,220065E-02
7,230065E-02   7,240065E-02   7,250065E-02   7,260066E-02   7,270066E-02
7,280066E-02   7,290066E-02   7,300066E-02   7,310066E-02   7,320067E-02
7,330067E-02   7,340067E-02   7,350067E-02   7,360067E-02   7,370067E-02
7,380068E-02   7,390068E-02   7,400068E-02   7,410068E-02   7,420068E-02
7,430068E-02   7,440069E-02   7,450069E-02   7,460069E-02   7,470069E-02
7,480069E-02   7,490069E-02   0,0750007   0,0751007   0,0752007   0,0753007
0,0754007   0,0755007   7,560071E-02   7,570071E-02   7,580071E-02
7,590071E-02   7,600071E-02   7,610071E-02   7,620072E-02   7,630072E-02
7,640072E-02   7,650072E-02   7,660072E-02   7,670072E-02   7,680073E-02
7,690073E-02   7,700073E-02   7,710073E-02   7,720073E-02   7,730073E-02
7,740074E-02   7,750074E-02   7,760074E-02   7,770074E-02   7,780074E-02
7,790074E-02   7,800075E-02   7,810075E-02   7,820075E-02   7,830075E-02
7,840075E-02   7,850076E-02   7,860076E-02   7,870076E-02   7,880076E-02
7,890076E-02   7,900076E-02   7,910077E-02   7,920077E-02   7,930077E-02
7,940077E-02   7,950077E-02   7,960077E-02   7,970078E-02   7,980078E-02
7,990078E-02   8,000078E-02   8,010078E-02   8,020078E-02   8,030079E-02
8,040079E-02   8,050079E-02   8,060079E-02   8,070079E-02   8,080079E-02
0,0809008   0,0810008   0,0811008   0,0812008   0,0813008   0,0814008
8,150081E-02   8,160081E-02   8,170081E-02   8,180081E-02   8,190081E-02
8,200081E-02   8,210082E-02   8,220082E-02   8,230082E-02   8,240082E-02
8,250082E-02   8,260082E-02   8,270083E-02   8,280083E-02   8,290083E-02
8,300083E-02   8,310083E-02   8,320083E-02   8,330084E-02   8,340084E-02
8,350084E-02   8,360084E-02   8,370084E-02   8,380084E-02   8,390085E-02
8,400085E-02   8,410085E-02   8,420085E-02   8,430085E-02   8,440086E-02
8,450086E-02   8,460086E-02   8,470086E-02   8,480086E-02   8,490086E-02
8,500087E-02   8,510087E-02   8,520087E-02   8,530087E-02   8,540087E-02
8,550087E-02   8,560088E-02   8,570088E-02   8,580088E-02   8,590088E-02
8,600088E-02   8,610088E-02   8,620089E-02   8,630089E-02   8,640089E-02
8,650089E-02   8,660089E-02   8,670089E-02   0,0868009   0,0869009
0,0870009   0,0871009   0,0872009   0,0873009   8,740091E-02   8,750091E-02
8,760091E-02   8,770091E-02   8,780091E-02   8,790091E-02   8,800092E-02
8,810092E-02   8,820092E-02   8,830092E-02   8,840092E-02   8,850092E-02
8,860093E-02   8,870093E-02   8,880093E-02   8,890093E-02   8,900093E-02
8,910093E-02   8,920094E-02   8,930094E-02   8,940094E-02   8,950094E-02
8,960094E-02   8,970094E-02   8,980095E-02   8,990095E-02   9,000095E-02
9,010095E-02   9,020095E-02   9,030095E-02   9,040096E-02   9,050096E-02
9,060096E-02   9,070096E-02   9,080096E-02   9,090097E-02   9,100097E-02
9,110097E-02   9,120097E-02   9,130097E-02   9,140097E-02   9,150098E-02
9,160098E-02   9,170098E-02   9,180098E-02   9,190098E-02   9,200098E-02
9,210099E-02   9,220099E-02   9,230099E-02   9,240099E-02   9,250099E-02
9,260099E-02   0,092701   0,092801   0,092901   0,093001   0,093101
0,093201   9,330101E-02   9,340101E-02   9,350101E-02   9,360101E-02
9,370101E-02   9,380101E-02   9,390102E-02   9,400102E-02   9,410102E-02
9,420102E-02   9,430102E-02   9,440102E-02   9,450103E-02   9,460103E-02
9,470103E-02   9,480103E-02   9,490103E-02   9,500103E-02   9,510104E-02
9,520104E-02   9,530104E-02   9,540104E-02   9,550104E-02   9,560104E-02
9,570105E-02   9,580105E-02   9,590105E-02   9,600105E-02   9,610105E-02
9,620105E-02   9,630106E-02   9,640106E-02   9,650106E-02   9,660106E-02
9,670106E-02   9,680106E-02   9,690107E-02   9,700107E-02   9,710107E-02
9,720107E-02   9,730107E-02   9,740108E-02   9,750108E-02   9,760108E-02
9,770108E-02   9,780108E-02   9,790108E-02   9,800109E-02   9,810109E-02
9,820109E-02   9,830109E-02   9,840109E-02   9,850109E-02   0,0986011
0,0987011   0,0988011   0,0989011   0,0990011   0,0991011   9,920111E-02
9,930111E-02   9,940111E-02   9,950111E-02   9,960111E-02   9,970111E-02
9,980112E-02   9,990112E-02   0,1000011

 Non è che l'inghippo sia nel CStr?
Albe, stai torronando? ;-)
E poi dove sarebbe quel Cstr (Il Debug.Print dici?)
Che c'è di strano? I conti con variabili non intere non sono giusti. Non
vedo novità di sorta...

e doppia precisione.
Vedi che hai scritto anche tu 'rappresentazione'? :)
termoPilucco


Infatti non e' cosi'.
Ecco un link sempre verde, per questo argomento ricorrente:
http://support.microsoft.com/default.aspx?kbid=42980
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown


Ciao Turk182
se non vuoi inciampare nell'imprecisione dei tipi di dato a virgola mobile
puoi forzare il piano di calcolo sul sottotipo decimal
------------------------------
Dim v As Single
Dim i As Long
   v = 0
   For i = 1 To 100
      v = v + CDec(0.0001)
      Debug.Print v
   Next i
---------------------------
o meglio ancora
--------------------------
Dim v As Variant
Dim i As Long
   v = CDec(0)
   For i = 1 To 100
      v = v + 0.0001
      Debug.Print v
   Next i
-------------------------
Ciao Giorgio

 news:bu6ea0$n35$1...@lacerta.tiscalinet.it...
Dimenticavo....
Ricordati che la funzione Round non arrotonda in base alle regole
finanziarie.
-------------------
Debug.Print Round(1.015,2)
Risultato 1.01
------------------
Ciao Giorgio

 
In che senso? L'algoritmo su cui si basa la funzione Round e' detto 
"bank-rounding" che mi sembra un concetto piuttosto finanziario...


 E poi dove sarebbe quel Cstr (Il Debug.Print dici?)
Esatto.
Secondo me il problema è solo lì.
Nel senso che il concetto di single e di double è basato su una struttura
matematica diversa da quella decimale 'umana', per cui non si può pretendere
che coincida. Usi diversi, e comportamenti diversi.
Il CStr, invece, potrebbe anche essere gestito con un minimo di tolleranza,
e visualizzare in modo umano.
Mmmmmhhhh....
No, forse invece è proprio giusto che il CStr faccia così.
Se si vuole una visualizzazione 'umanoide' si usa il format$.
Ciao
Alberto
-- 
"Tina, ta te tòta tinta un tac!"
"Te cat tac i tac, m'tac't un tac?"
"Me ca tac un tac a tè?
Tac'tel te l tò tac, tò!"


Ciao,
forse sarà un concetto finanziario, ma di sicuro non è conforme alle
specifiche del comitato per l'euro sull' arrotondamento.
----------------------
Round(1.045,2)=1,04
Round(1.055,2)=1.06
----------------------
Ciao Giorgio

 
Cosa vuoi farci, in America le banche arrotondano cosi' ...
:-)



Forse, ma allora perché in Excel utilizzano l'arrotondamento matematico ?
http://support.microsoft.com/default.aspx?scid=kb;en-us;194983&Product=vbb
misteri della sfinge :-)
Ciao Giorgio.

 
Perche' le banche americane non usano excel!
Comunque su msdn c'e' scritto questo:
"The Round() Function is Inconsistently Implemented
The Round() function is not implemented in a consistent fashion among 
different Microsoft products for historical reasons."
Sai prima c'erano le lire che non avevano i centesimi ed allora 
l'arrotondamento non veniva usato...
;-)
	maxx
P.s. questa barzelletta che "per ragioni storiche" la stessa funzione fa 
  cose diverse a seconda dell'anno di implementazione e' da hall of fame!


   cose diverse a seconda dell'anno di implementazione e' da hall of fame!
E' proprio quello che volevo sottolineare, se le banche USA non usano Excel
allora non usano neanche MsSqlServer o Oracle o Sybase ecc ecc.
Ciao Giorgio