2013-07-09 10 views
13

numeri Fondamentalmente sto formattazione come questo

@String.Format("{0:C}", Model.Price) 

Il risultato è $ 2,320,000.00

mio risultato desiderato, tuttavia, è 2,320,000.00 solo senza $, rispettivamente. Come posso raggiungere questo, pur sfruttando la movimentazione .nets localizzazione?

Modifica

e che cosa se voglio che cambiare la mia classe in modo che quando mai una persona cercare di ottenere Price, si ottiene questo tipo di prezzo formattato. Qui è la mia classe

public class Listing : DomainObject 
{ 
    public decimal Price { get; set; } 
    public decimal Commission { get; set; } 
} 
+0

motivo dietro la mia modifica è che nel mio primo caso devo cambiare in ogni luogo dove io uso luogo e in seconda condizione verrà automaticamente fatto ovunque. – Ancient

+0

È possibile creare un metodo speciale come membro della classe. –

risposta

26

Uso N invece di C come format specifier:

@String.Format("{0:N}", Model.Price) 

"C" o "c" valuta Risultato: un valore di valuta.

123.456 ("C", en-US) -> $ 123,46

"N" o "n" Numero Risultato: Integral e decimali cifre, separatori di gruppo, e un numero decimale

1.234,567 ("N ", en-US) -> 1,234.57

Ie stavi ottenendo un simbolo di valuta perché eri chiedendo per uno.

+0

Grazie, questo funziona bene, ma per quanto riguarda la mia seconda domanda? – Ancient

+0

@ user2413182 - non ha davvero senso - se qualcuno sta specificando di formattare un decimale in una stringa come valuta, verrà incluso il simbolo di valuta. Qualsiasi altra cosa sarebbe profondamente sorprendente, il che non costituisce una buona esperienza di programmazione. –

+0

Questo cambia il comportamento dei negativi però, sono tra parentesi con {0: C} e mostrare segno negativo con {0: N}, in modo da risolvere una questione, ed eventualmente presentare un altro se si wised avere negativi appaiono come valuta solo senza il simbolo della valuta. –

3

Vorrete rendere la proprietà Price una stringa e avere un campo di supporto di un decimale, quindi nel getter della vostra proprietà Price fate il vostro formato di stringa.

private decimal price; 

public String Price 
{ 
    get { return String.Format("{0:N}", price); } 
} 

Quindi è possibile utilizzare @Model.Price per la visualizzazione.

+0

Puoi mostrare l'esempio – Ancient

+0

editato per mostrare un esempio;) – ChrisGheen

1

Piuttosto utilizzare {0:F2} poiché non includerà Virgola ',' come in {0: C}.

Console.Write("{0:F2}", 2.5); //2.50 
Console.Write("{0:F0}", 25); //25 
Problemi correlati