Представлять десятичную дробь сначала точкой, затем запятой

#c# #asp.net-core #asp.net-core-mvc #asp-net-core-spa-services

#c# #asp.net-core #asp.net-core-mvc #asp-net-core-spa-services

Вопрос:

Я нашел множество решений с первой запятой, а затем точкой, и я хочу что-то вроде этого: 133.000,00

Что я пробовал до сих пор: @item.Price.ToString("C3", System.Globalization.CultureInfo.CreateSpecificCulture("da-DK"))

и

@String.Format("{0:#.##0,######}", item.Price)

Во втором форматировании я получаю только 133000.00

Комментарии:

1. можем ли мы уточнить: цена, которую вы хотите представить, — это «133 тысячи» или «133 целых ноль десятых»?

2. @MarcGravell это «133 тысячи»

Ответ №1:

Вы, вероятно, имеете в виду (после var culture = CultureInfo.CreateSpecificCulture("da-DK"); )

 var s = price.ToString("#,##0.00####", culture);
  

или:

 var s = string.Format(culture, "{0:#,##0.00####}", price);
  

В обоих случаях вам нужно передать используемый язык, и: . в строке формата означает «маркер десятичной запятой языка», а , в строке формата означает «маркер разделителя тысяч языка культуры». Обратите внимание, что я использовал .00## в конце, потому что вам, похоже, нужны два десятичных знака, даже если они являются нулями.

Комментарии:

1. Я просто хочу упомянуть, что я делаю это в asp.net ядро, страница razor, я попробую это сейчас

Ответ №2:

Что-то вроде этого должно сработать:

 item.Price.ToString("#,#0.00", System.Globalization.CultureInfo.CreateSpecificCulture("da-DK"))