2009-11-11 1 views
0

У меня есть эти цифры:C# Числовой форматирования вопрос

5.25 
10251.35 
5 

и я хочу, чтобы они были отформатированы с группами и всегда с 2 десятичными знаками, XX

это то, что .ToString("N2") делает:

5,25 
10.251,35 
5 

Как я могу сделать '5' похож на 5,00 тоже? И для нескольких культур, конечно (ru: 5.0, de: 5,0 ...)

На самом деле этот вопрос не имеет смысла, N2 должен делать это любой ценой. Проблема была в моем WebServer.

+0

Что, нет ответа от Jn Skeet? Должно быть, на его чайном перерыве. – Skizz

+0

Bugger, липкий 'O' ключ. – Skizz

+0

Не могу поверить, что ты помнишь меня ... –

ответ

2

Разве это не работает для вас:

decimal d = 5m; 
string formatted = d.ToString("N2"); 

Это будет использовать текущую культуру, но вы можете указать один:

string formatted = d.ToString("N2", new CultureInfo("fr-FR")); 
+0

Вот что я делаю. Но он не отображает 12.510,00. Он отображает только 12.510 –

+0

За какой вклад? –

+0

'12510m.ToString (" N2 ")' возвращает '12,510.00' для en-US. –

2

.ToString ("{0: #, 0,00 } ")

Примечание: хотя это использует группировку из США & десятичных символов, результат будет признан локалием, если предположить, что либо ваш текущий пользовательский язык установлен правильно, либо yo u передайте локаль в ToString().

+0

Ваше решение работает тоже, конечно. +1 point –

0

С имеющемся формате (с фиксированной точкой), вы должны использовать:

.ToString("F2"); 

У вас есть все формат здесь: MSDN

+0

На самом деле, я хотел бы иметь комбинацию N с F, а не только F2 –