Формат десятичный локализованный и форматированный - PullRequest
1 голос
/ 30 января 2012

Пример объясняет вопрос

ожидается: 17,590

Первая попытка:

const decimal value = 17.59m;
const string format = "{0:0,000}";
var result = string.Format(format, value);

Это приведет к 0,018, конечно, потому что культура en-US и , интерпретируется как разделитель тысяч.

Вторая попытка:

const decimal value = 17.59m;
var result = Convert.ToString(value, CultureInfo.GetCultureInfo("pt-BR"));

Теперь я получаю 17,59

Как я могу объединить формат и локализацию, используя возможности фреймворка asp.net?

1 Ответ

2 голосов
/ 31 января 2012

Вы можете вызвать ToString непосредственно для значения decimal - у него есть перегрузки, которые принимают строки формата и объект CultureInfo.

Обратите внимание, что в строке числового формата десятичный разделитель представлен как . (который будет преобразован в соответствующий десятичный разделитель).

Это:

var result = 17.59m.ToString("0.000", CultureInfo.GetCultureInfo("pt-BR"));

Производит:

17,590
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...