Подтвердить что ты не робот

Форматировать строку с помощью CultureInfo

Я хочу показать знак фунта и формат 0.00 i.e £ 45.00, £ 4.10. Я использую следующее утверждение:

<td style="text-align:center"><%# Convert.ToString(Convert.ToSingle(Eval("tourOurPrice")) / Convert.ToInt32(Eval("noOfTickets")), new System.Globalization.CultureInfo("en-GB")) %></td>

Но он не работает. В чем проблема.

Может ли кто-нибудь мне помочь?

4b9b3361

Ответ 1

Используйте строку Currency в формате стандартного формата вместе с string.Format, который принимает поставщика формата:

string.Format(new System.Globalization.CultureInfo("en-GB"), "{0:C}", amount)

CultureInfo может выступать в качестве поставщика формата и также получит правильный символ валюты для культуры.

Затем ваш пример будет читаться (на расстоянии от читаемости):

<td style="text-align:center">
    <%# string.Format(new System.Globalization.CultureInfo("en-GB"), 
                      "{0:C}", 
                      Convert.ToSingle(Eval("tourOurPrice")) 
                             / Convert.ToInt32(Eval("noOfTickets")))
    %>
</td>

Ответ 2

Как насчет

<%# (Convert.ToSingle(Eval("tourOurPrice")) / Convert.ToInt32(Eval("noOfTickets"))).ToString("C", New System.Globalization.CultureInfo("en-GB")) %>

Ответ 3

Попробуйте указать формат точной валюты

String.Format(...CultureInfo("en-GB"), "{0:C}"....

Ответ 4

Это должно работать:

<td style="text-align:center">
<%# String.Format( new System.Globalization.CultureInfo("en-GB"), "{0:c}", Convert.ToSingle(Eval("tourOurPrice")) / Convert.ToInt32(Eval("noOfTickets")) %>
</td>

Ответ 5

Я хотел добавить дополнительный связанный ответ, чтобы показать, как использовать клонированный объект CultureInfo в string.Format() или StringBuffer.AppendFormat(). Вместо валюты, однако, мне нужно было форматировать обозначение AM/PM для моего руководства по стилю работодателя. Вот что я сделал:

var culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.DateTimeFormat.AMDesignator = "a.m.";
culture.DateTimeFormat.PMDesignator = "p.m.";
....
var msg = new StringBuilder();
msg.AppendFormat(culture,"Last modified: {0:M/d/yyyy h:mm tt}", ad.DateModified);

Вы можете сделать то же самое с string.Format():

string strMsg = string.Format(culture, "Last modified: {0:M/d/yyyy h:mm tt}", ad.DateModified);