#2 Arrotondamenti, troncamenti, intero inferiore e superiore di numeri
Per tutte le versioni di VB.NET
Spesso si ha la necessità di arrotondare un numero reale secondo le normali regole di arrotondamento: all’intero più vicino. Es.:
1,4 --> 1 1,7 --> 2
Per ottenere questo risultato si deve utilizzare il metodo
System.Math.Round(numero)
Qualche volta invece serve troncare il numero, cioè prendere solamente la parte intera, scartando completamente la parte decimale. Es.:
1,4 --> 1 1,7 --> 1
Si ottiene questo risultato con
System.Math.Truncate(numero)
Certe volte può essere necessario individuare il numero intero immediatamente superiore o immediatamente inferiore. Es.:
Superiore di 1,3 --> 2 Inferiore di 1,3 --> 1
Questi ultimi due si ottengono rispettivamente con:
System.Math.Ceiling(d) ' ceiling = soffitto, tetto
System.Math.Floor(d) ' floor = pavimento, piano
Pubblicato il 15 gennaio 2008 su Tips. Aggiungi ai preferiti il collegamento . 2 commenti.
ma access non ha la funz. ceiling.. come faccio ?
se uso round mi arrotonda come dice lui (es. 0,14 = 0,1 ; 0,16 = 0,2) io devo arrotondare al superiore…
Grazzzzie
Infatti all’inizio di questa “tip” è indicato che le istruzioni sono valide per tutte le versioni di VB.NET.
MS Access utilizza il linguaggio VBA (Visual Basic for Applications) che è più simile a Visual Basic 6.0 (dell’epoca pre-VB.NET).
Per arrotondare sempre al valore superiore potresti seguire un semplice algoritmo:
1) moltiplichi il valore per 10 se vuoi arrotondare alla prima cifra decimale, per 100 per la seconda cifra decimale e così via;
2) aggiungi un numero decimale “grande” per aumentare il valore intero
3) tronchi al valore intero
4) dividi nuovamente il valore per 10, 100 o altro valore che hai utilizzato al punto 1).
Per esempio, per arrotondare 0,14 alla prima cifra decimale procedi così:
1) 0,14 x 10 = 1,4
2) 1,4 + 0,9 = 2,3
4) int(2,3) = 2
5) 2 / 10 = 0,2
… e quindi ottieni 0,14 –> 0,2.
Tutto il calcolo si può unificare in un’unica riga:
(int((0,14 * 10) + 0,9))/10