Bè, se leggi bene la doc, un numero positivo ti arrotonda al numero di cifre intere uguale al parametro, un numero negativo interessa invece il numero di decimali.
La funzione Round è comunque un metodo per tagliuzzare un numero, ma ce ne sono altri, dipende da cosa vuoi ottenere. A volte serve un vero troncamento, in questo caso si usa Int(). Mi pare ci siano anche funzioni che estraggono le due porzioni (intera e decimale), in modo che possano essere trattate come si desidera...
Sì, ho notato che
Round ha un comportamento complesso.
Per esempio, se il secondo valore è positivo, arrotonda alla cifra superiore od inferiore, azzerando le cifre della parte intera cominciando dalla cifra indicante le unità (quindi la prima a destra di un numero) fino alla
nma cifra pari al numero indicato nel 2° valore di
Round. Se la
nma cifra è compresa tra 0 e 4, il numero - che si intende arrotondare - sarà arrotondato per difetto (all'unità inferiore); se è compresa fra 5 e 9, il numero sarà arrotondato per eccesso (all'unità superiore). Ho notato che i decimali sono del tutto ignorati.
Quindi se abbiamo
il terzo numero partendo da destra (non si tiene conto dei decimali) è 2 (compreso fra 0 e 4); qui
Round azzera tutte le cifre da quella più a destra sino alla terza verso sinistra (che è il 2), otterremo 1000.
Comunque sia, tornando alla questione dell'arrotondamento all'unità superiore, con
Round l'arrotondamento all'unità
superiore avviene solo se il decimale è uguale o superiore a 5.
Ne ho fatto un breve riassunto nella nostra WIKI, alla quale rimando:
http://www.gambas-it.org/wiki/index.php/Arrotondamento_di_un_numero_con_virgola_mobile