Форматирование десятичных чисел в c # - PullRequest
0 голосов
/ 18 сентября 2018

Как мне преобразовать эти числа

Примеры:

  1. 77.0227
  2. 0.0803
  3. 1.1567

На эти цифры соответственно:

  1. 77,02
  2. 8,03
  3. 1,16

Все это нужно сделатьс тем же "форматированием".Эти значения взяты из хранимой процедуры в SQL, и они всегда разные, но они должны быть в правильном формате.Все они являются процентными значениями.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Если вам нужны запятые в качестве десятичного разделителя, вам нужно указать культуру;как это:

string result = string.Format(new System.Globalization.CultureInfo("es-ES"), "{0:#,##0.00}", inputValue);

Я полагаю, что культура Испании (испанский язык), поэтому попробую с этим кодом.

См. работающий пример в этой скрипке .

0 голосов
/ 18 сентября 2018

Вы можете использовать спецификатор формата с фиксированной точкой ("F") , чтобы округлить до двух цифр:

decimal number = 77.0227m;
string result = number.ToString("F2");

Если это не даст вам желаемый формат (нетзапятые, но точки, например), то вы должны передать желаемую культуру.Предполагая, что вы хотите испанский:

var spanishCulture = new CultureInfo("es-ES");
string result = number.ToString("F2", spanishCulture);
...