Глобальное пользовательское форматирование чисел - переменные десятичные точки - PullRequest
3 голосов
/ 05 мая 2011

Я пытаюсь изменить существующее форматирование чисел в приложении моей компании, чтобы сделать его более читаемым для иностранных пользователей.Это приложение для торговли акциями, поэтому большинство котировок акций имеют числа с точностью до 2 десятичных знаков, например, так -> 17,23. Мы также можем получить тики с точностью до 4 десятичных знаков, так что запас копейки может составлять 0,0341.Исходный формат строки, который мы использовали для акций, был "#, ## 0,00 ##", что дало бы нам требуемый формат (по сути, обрезка '0').Проблема здесь в «,» и «.»навязываются пользователю, где во многих других странах разделителем тысяч является '.'и десятичная точка - ','.Босс не хочет использовать «N4» для всех чисел, хотя это решило бы проблему глобализации.Возможно ли иметь глобализированный пользовательский формат строки?

Другие варианты, кроме написания некоторого кода среднего человека для интернационализации чисел, отформатированных оригинальным способом или другого метода string.format?

Ответы [ 2 ]

1 голос
/ 05 мая 2011

Проверьте это:

float value = 0.0341f;
string output = string.Empty;
CultureInfo brazil = new CultureInfo("pt-BR");
CultureInfo usa = new CultureInfo("en-US");
output = value.ToString("C4", brazil.NumberFormat); //output is R$ 0,0341
output = value.ToString("C4", usa.NumberFormat); //output is $0.0341
0 голосов
/ 05 мая 2011

, и . в строке нестандартного формата уже переводятся в правильные разделители для текущей культуры.Вам не нужно менять свой код.См. MSDN .

...