views:

795

answers:

4

Hi

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???

A: 

Try specify exact currency format String.Format(...CultureInfo("en-GB"), "{0:C}"....

Dewfy
+1  A: 

How about

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

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>
Phaedrus
+2  A: 

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.ToString(Convert.ToSingle(Eval("tourOurPrice")) 
                                         / Convert.ToInt32(Eval("noOfTickets")))
    %>
</td>
adrianbanks