Newsgroup: it.comp.lang.visual-basic
Titolo: Arrotondamento Euro

Avete qualche funzione collaudata ?
Ciao e grazie

 Avete qualche funzione collaudata ?
Se ne č parlato anche qualche post fą.
Guardati Round e Format su MSDN
Davide

 wrote in message
7NNT7.248$hM1....@twister1.libero.it...


scusate ma che cosa ha di male
format (numero, "0.#0")
L2K

 wrote in message
R5ZT7.17339$o9.6...@news1.tin.it...


 jack
Cosě perň esegui un troncamento!
o sbaglio?
Non č meglio cosě?
conver_Euro = Round((Text1 / 1936.27),2)
Text2 = Format(conver_Euro, "0.#0")
Davide

cosa intendi per troncamento?
L2K


 ha scritto nel messaggio
news:9vppjh$f8p$1...@fe1.cs.interbusiness.it...
cut

 ha scritto nel messaggio
news:9vppjh$f8p$1...@fe1.cs.interbusiness.it...


 cosa intendi per troncamento?
intendo che se text1 è ad esempio 3000
la converisone in euro dà come risultato 1,549370etc...
allora in questo caso:
conver_Euro = (Text1 / 1936.27)
Text2 = Format(conver_Euro, "0.#0")
il risultato (valore visualizzato su text2) è 1,54 (mi sono mangiato 0,009
euro)
nel secondo caso
conver_Euro = Round((Text1 / 1936.27),2)
Text2 = Format(conver_Euro, "0.#0")
il risultato è 1,55 (mi sono mangiato 0,001 euro)
la differenza è minima ma immagina uno scarto del genere moltiplicato per
350.000 record della tabella di un database....
0,009 * 350.000*1936,27= 6.099.250
sono oltre 6 milioni di errore.
mentre nel primo caso l'errore sarebbe stato
0,001*350.000*1936,27=677.694
senza contare che, se come sistema adotti l'arrotondamento, lo scarto sarà
sempre molto inferiore a quello indicato nell'esempio perchè l'errore è a
volte per eccesso e a volte per difetto quindi diciamo che all'interno delle
350.000 righe ipotetiche della tabella del nostro database le righe
compensano gli errori tra di loro dando un risultato molto vicino a quello
reale. Proprio oggi pomeriggio su circa 80.000 righe abbiamo fatto prove del
genere per testare l'imminente conversione dei valori in euro e il risultato
è che con l'arrotondamento l'errore è di circa 1.100 lire (su 80.000 righe
circa convertite)
Dove lavoro, l'altro giorno, testando la nuova release di un programma, una
chiusura non quadrava di 20 lire, abbiamo fatto ricontrollare il software,
dopo un giorno di lavoro hanno scoperto che il problema stava proprio negli
arrotondamenti.
Non si tratta di pignoleria ma solo di coerenza e precisione.
Davide

saro' drogato ma ...
VB6 SP5
nuovo "progetto exe"
aggiunto text1 e text2
aggiunto command1
Private Sub Command1_Click()
conver_Euro = (Text1 / 1936.27)
Text2 = Format(conver_Euro, "0.#0")
End Sub
[RUN]
scrivi 3000 in text1
a me viene 1.55 come è giusto che sia e allora dove è il problema? scusami
ma non capisco
L2K


scritto nell' "immediate"...
?format("2,065", "0.#0")
2,07
dov'è il problema?
L2K

Ho provato pure io....
devo ammettere che jmi sono sbagliato, la funzione format fą gia di suo
l'arrotondamento....
Sono un pirla!!!
Davide

 wrote in message
2M4U7.19481$o9.6...@news1.tin.it...


 ha scritto nel messaggio
news:2M4U7.19481$o9.6...@news1.tin.it...

Sempre nell'immediate:
?Round(2.065, 2)
 2,06
?Format(2.065, "0.#0")
2,07
Credo che dovrò ricontrollare un pò di cose domani a lavoro :-/
Cosma

 2,07
vabbè che programmo vsb come hobby però perchè sono così Idiota!!
Che qualcuno mi frusti!
Davide

Che qualcuno mi frusti!
Come rispose il sadico al masochista:
NO
-- 
ciao, hal

si infatti è una stringa però la si utilizza solo in fase di stampa o di
visualizzazione anche perche i calcoli in euro vanno fatti alla 4a cifra
decimale (se non sbaglio) e quindi si utilizzano dati currency e poi si
stampano con format....
questo è quello che ho fatto io qualcuno sa dirmi se sbaglio??
L2K


 ha scritto nel messaggio
news:71ZT7.18751$OP2.7...@news2.tin.it...
