Как использовать независимый от локали десятичный и числовой разделитель в строке формата?

Я использую следующее для форматирования значения столбца (привязанного к значению десятичного типа?):

[DisplayFormat(DataFormatString = "{0:N2}")] 

Теперь я хочу изменить его на следующий формат:

[DisplayFormat(DataFormatString = "{0:#,###.00##}")]

Но это не зависит от локали, так как я жестко кодирую десятичный и числовой разделитель. По сути, я хочу отобразить строку с соответствующими числовыми и десятичными разделителями. Кроме того, я хочу минимум два нуля после десятичного разделителя и максимум 4 нуля. Можно ли указать такую ​​строку во время компиляции?


person P.K    schedule 17.03.2011    source источник


Ответы (1)


Но это не зависит от локали, так как я жестко кодирую десятичный и числовой разделитель.

Нет, вы не; в спецификаторах формата . и , означают "десятичный разделитель" и "разделитель тысяч" соответственно, а не буквальные запятые и точки. Он должен работать правильно. Например, «#,###.00##» в культуре fr-FR должен выглядеть как «1 234,56»:

var culture = CultureInfo.GetCultureInfo("fr-fr");
decimal d = 1234.56M;
string s = d.ToString("#,###.00##'", culture); // "1 234,56"
person Marc Gravell    schedule 17.03.2011