Come per arrotondare un numero decimale per l'uscita?
-
22-08-2019 - |
Domanda
con C #, voglio formattare un decimale visualizza solo due cifre decimali e poi mi prenderò che decimale e sottrarre ad un altro decimale. Vorrei essere in grado di fare questo senza dover girare in una stringa prima di formattare e poi riconvertirlo in un decimale. Mi dispiace di aver dimenticato di specificare questo, ma io non voglio arrotondare, voglio solo tagliare fuori l'ultimo punto decimale. C'è un modo per fare questo?
Soluzione
Se non si desidera arrotondare decimale, è possibile utilizzare Decimal.Truncate. Purtroppo, può troncare solo tutti i decimali. Per risolvere questo problema, si potrebbe moltiplicare per 100, troncare e dividere per 100, in questo modo:
decimal d = ...;
d = Decimal.Truncate(d * 100) / 100;
E si potrebbe creare un metodo di estensione, se si sta facendo abbastanza volte
public static class DecimalExtensions
{
public static decimal TruncateDecimal(this decimal @this, int places)
{
int multipler = (int)Math.Pow(10, places);
return Decimal.Truncate(@this * multipler) / multipler;
}
}
Altri suggerimenti
È possibile utilizzare: Math.Round(number,2);
per arrotondare un numero a due cifre decimali
questo sovraccarico specifico di Math.round per gli esempi.
Se non si desidera formattare allora, ma per arrotondare. Prova la funzione Math.round.
Date un'occhiata a Math.round