2010-02-26 17 views
6

Qual è il modo migliore per formattare una quantità decimale in stringa per la visualizzazione dell'interfaccia utente nelle informazioni cultura corrette?Formato da decimale a stringa in informazioni cultura corrette

+1

Cosa c'è di sbagliato in 'myDecimal.ToString()'? – Joey

+0

Caricamento nHibernate oggetto dal database, la proprietà è decimale e quando si chiama toString() viene formattato con le cifre decimali corrette. Tuttavia, quando si salva l'impostazione della stessa proprietà dal testo es. allocazione.Prezzo = Decimal.Parse (prezzo, CultureInfo.CurrentCulture); ma una volta impostato e chiamare allocazione.Prezzo.toString() posizioni decimali non aggiunte. ad es. Dopo l'analisi decimale 15 desidera 15,00 ma toString dà solo 15. Strano? – c00ke

risposta

8

Aggiungi un formato per il ToString: myDecimal.ToString("#.00") o myDecimal.ToString("C"). Vedi http://msdn.microsoft.com/en-us/library/427bttx3.aspx

+0

nHa proprietà Iberna era Decimale? l'opzione di formattazione non era disponibile sul metodo toString. Ora crea una variabile decimale e usa la tua risposta e lavora a meraviglia. Saluti! – c00ke

+0

se si tratta di un Nullabile allora si può sia l'utente la proprietà .Value o il cast in decimale (se si è certi che non è null) –

1

uso:

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US", false); 
+0

Che funzionerà solo se CurrentCulture è en-US ... – Unsliced

+2

e allora? Non sta chiedendo dynamic cultureInfo. – NetSide

+0

JavaScript non è a conoscenza di "Global", quindi ho usato .ToString ("#. 00", New CultureInfo ("en-GB", False)) – Zymotik

0

Inoltre, se si desidera utilizzare una cultura specificata dall'utente è possibile utilizzare:

yourDecimal.ToString("N2", CultureInfo.CreateSpecificCulture(userInfo);

string userInfo = "en-US";

Problemi correlati