Qual è la sintassi per arrotondare un decimale lasciando due cifre dopo il punto decimale?Sintassi per il riepilogo in VB.NET
Esempio: 2,566,666 mila -> 2.57
Qual è la sintassi per arrotondare un decimale lasciando due cifre dopo il punto decimale?Sintassi per il riepilogo in VB.NET
Esempio: 2,566,666 mila -> 2.57
È possibile utilizzare System.Math
, specificamente Math.Round()
, in questo modo:
Math.Round(2.566666, 2)
Math.Round è quello che stai cercando. Se sei nuovo all'arrotondamento in .NET, dovresti anche cercare lo difference tra l'arrotondamento AwayFromZero e lo ToEven. L'impostazione predefinita di ToEven può talvolta sorprendere le persone.
dim result = Math.Round(2.56666666, 2)
Math.Round()
, come suggerito da altri, è probabilmente quello che vuoi. Ma il testo della tua domanda ha chiesto in particolare come "arrotondare" [sic]. Se avete sempre bisogno di arrotondare, regarless di valore reale (es: 2,561,111 mila sarebbero ancora andare a 2.57), si può fare questo:
Math.Ceiling(d * 100)/100D
Se si vuole l'arrotondamento regolare, si può semplicemente utilizzare il metodo Math.Round
. Se si specifially desidera arrotondare verso l'alto, si utilizza il metodo Math.Ceiling
:
Dim d As Decimal = 2.566666
Dim r As Decimal = Math.Ceiling(d * 100D)/100D
Non capisco perché le persone sono raccomandando il codice errato di seguito:
Dim r As Decimal = Math.Ceiling(d * 100D)/100D
Il codice corretto per arrotondare dovrebbe essere simile questo:
Dim r As Double = Math.Ceiling(d)
Math.Ceiling ha due overload; uno per i decimali e uno per il doppio. –
l'unico punto che non so è vero o no è il punto 2 che fai. forse potresti fornire ed esempio? gli altri 2 punti che fai (1 e 3) non sono corretti. Ecco la documentazione di Math.ceiling al suo livello più alto, che mostrerà 2 overload: http://msdn.microsoft.com/en-us/library/System.Math.Ceiling(v=vs.110).aspx –
While Math.Ceiling può assumere decimali o raddoppiare sempre restituisce _ "Restituisce l'integrale più piccolo" _ (dai documenti che colleghi). L'OP chiede espressamente l'arrotondamento a due cifre decimali. Quindi vogliono un decimale/doppio indietro, non un intero. Quindi Math.Ceiling non funzionerà da solo – Adam
La funzione di base di arrotondamento è Math.Ceiling (d), ma il richiedente specificamente voluto arrotondare dopo il secondo decimale. Questo sarebbe Math.Ceiling (d * 100)/100. Ad esempio può moltiplicare 46.5671 per 100 per ottenere 4656.71, quindi arrotonda per ottenere 4657, quindi divide per 100 per spostare il decimale indietro di 2 posizioni per ottenere 46.57.
Ecco come lo faccio:
Private Function RoundUp(value As Double, decimals As Integer) As Double
Return Math.Ceiling(value * (10^decimals))/(10^decimals)
End Function
ho usato in questo modo:
Math.Round(d + 0.49D, 2)
ah..yeahh ... thx – leonita