Формат десятичного числа в валюте США - PullRequest
6 голосов
/ 04 марта 2011
<%= Math.Round(netValue)%>

Одним из примеров его вывода может быть -1243313

Как мне убедиться, что он отформатирован как валюта США (с '$', правильными запятыми и т. Д.)?

Ответы [ 4 ]

10 голосов
/ 04 марта 2011

Может быть:

<%=string.Format(CultureInfo.GetCultureInfo(1033), "{0:C}", Math.Round(netValue)) %>

(1033 - идентификатор локали для культуры en-us)

3 голосов
/ 04 марта 2011

Если культура потока уже является en-US, вам не нужно указывать ее.

<%= Math.Round(netValue).ToString("C") %> 

В противном случае, чтобы получить культуру для Соединенных Штатов, сначала создайте объект культуры.

CultureInfo usaCulture = new CultureInfo("en-US");

Затем вы можете передать это методу ToString для десятичного объекта.

<%= Math.Round(netValue).ToString("C", usaCulture) %> 
1 голос
/ 04 марта 2011

Вы можете использовать format код валюты C примерно так:

decimal moneyvalue = 1921.39;
string output = String.Format("Order Total: {0:C}", moneyvalue);
Console.WriteLine(output);

Редактировать: Если интернационализация является проблемой, вы можете взглянуть на локализация а также.

0 голосов
/ 04 марта 2011
...