Question

I want to show pound sign and the format 0.00 i.e £45.00, £4.10 . I am using the following statement:

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

But it is not working. What is the problem.

Can any one help me???

Was it helpful?

Solution

Use the Currency standard format string along with the string.Format method that takes a format provider:

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

The CultureInfo can act as a format provider and will also get you the correct currency symbol for the culture.

Your example would then read (spaced for readability):

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

OTHER TIPS

How about

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

Try specify exact currency format

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

This should work:

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

I wanted to add an additional related answer to show how to use a cloned CultureInfo object in a string.Format() or StringBuffer.AppendFormat(). Instead of currency though, my need was to format the AM/PM designator for my employer's style guide. Here is what I did:

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);

You can do the same thing with string.Format():

string strMsg = string.Format(culture, "Last modified: {0:M/d/yyyy h:mm tt}", ad.DateModified);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top