2008/5/18 Valerio Messina <[EMAIL PROTECTED]>:

> correggo il primo esempio:
>
> N=2.9, X=0
> round (2.9+0.5*1, 0) = round (3.4, 0) = 3
>
>
>
> Valerio
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
Ti ringrazio, innanzitutto, delle risposte...a me serve l' equivalente calc
della funzione RoundUp e, quanto segue, imho, dovrebbe funzioinare...ma
fallisce su, ad esempio, "0.5545" approssimando a 3 cifre decimali:

Function myRoundUp (Numero As Double, Cifre As Integer) As Double
    myRoundUp=Int((Numero+0.5/10^Cifre)*10^Cifre)/10^Cifre
End Function

quel che non va - e non ne capisco il perche' - e' il comportamento di Int
(cosi' come quello di Fix)...eseguendo passo passo sul valore "0.5545" per
Numero e "3" per Cifre":

0.5545+0.0005=0.5550 // Numero+0.5/10^Cifre
0.5550*1000=555.0 // (Numero+0.5/10^Cifre)*10^Cifre)
Int(555.0)=554 // Int((Numero+0.5/10^Cifre)*10^Cifre) <- Errore!
554/1000=0.554 //Int((Numero+0.5/10^Cifre)*10^Cifre)/10^Cifre

Eppure il mero:

Int(555)=555

Bho'!?!?!

Dove sbaglio?

In teoria son tutti double, quindi non dovrebbero esserci errori di
conversione :|

Rispondere a