2012-11-08 32 views
7

Eventuali duplicati:
Using String Format to show decimal upto 2 places or simple integer
How to set decimal point in 2 decimal places?Come visualizzare il numero in 2 cifre decimali in mvc3, C#?

Ho campo Prezzo a mio avviso. si hanno i seguenti valori 2.5 and 44. voglio visualizzare questo valore per 2.50 and 44.00 io uso il seguente codice

@{decimal prolistprice = decimal.Parse(item.OtherFields["Price"].ToString());} 
    [email protected](prolistprice, 2, MidpointRounding.AwayFromZero) 

in cui item.OtherFields["price"] is a object converto a corda e poi decimale

ma Math.round non sta funzionando esso indica 2.5 e solo 44 .. qualcuno può aiutare questo

+0

Perché il titolo dice "integer"? –

+0

Puoi seguire questo post: http://stackoverflow.com/questions/6951335/using-string-format-to-show-decimal-upto-2-places-or-simple-integer –

+0

http://stackoverflow.com/questions/5428289/mvc3-decimal-truncated-to-2-decimal-places-on-edit – alexsuslin

risposta

24

Math.Round fa proprio questo - round.

Per formattare il numero è possibile utilizzare .ToString(formatString) in questo modo:

item.OtherFields["price"].ToString("0.00") 
+0

Nessun metodo di overload per ToString richiede 1 argomento – niico

+1

@niico probabilmente stai chiamando 'ToString' su un tipo nullable . Se è così, dovrai fare 'youVariable.Value.ToString (" 0.00 ")'. Non dimenticare di controllare nullo prima però! – PeteGO

4

questo dovrebbe funzionare per voi

yourvalue.ToString ("0.00"); 
3
decimal dValue = 2.5; 
string sDisplayValue = dValue.ToString("0.00"); 
12

funzione Usa formato stringa

1. string.Format("{0:n2}", 200000000.8776); 
2. string.Format("{0:n3}", 200000000.8776); 
3. string.Format("{0:n2}", 0.3); 

/* OUTOUT 
1. 200,000,000.88 
2. 200,000,000.878 
3. 0.30 
*/ 
Problemi correlati