Il mio consiglio: smettere di usare double
in primo luogo. Se hai bisogno di arrotondamento decimale, allora le probabilità sono buone, dovresti usare decimal
. Qual è la tua applicazione?
Se si dispone di un doppio, si può fare in questo modo:
double r = whatever;
decimal d = (decimal)r;
decimal truncated = decimal.Truncate(d * 100m)/100m;
Si noti che questa tecnica non riesce se il valore assoluto del doppio è più grande di 792281625142643375935439504, perché la moltiplicazione per 100 fallirà . Se devi gestire valori così grandi, dovrai utilizzare tecniche speciali. (Naturalmente, per il momento in una doppia è che di grandi dimensioni, si sono ben oltre la sua capacità di rappresentare i valori con due cifre dopo il decimale in ogni caso.)
fonte
2012-03-29 20:04:04
Se sei facendo il lavoro in * decimale *, allora perché stai usando * double * quando potresti usare * decimal *? –
Puoi andare a questo post e trovare quello che ti si adatta. Http://how-to-code-net.blogspot.ro/2012/09/how-to-format-number-to-x-decimal.html –