2009-08-12 9 views
29

Ich möchte Pfundzeichen und das Format 0,00, d. H. £ 45,00, £ 4,10. Ich verwende die folgende Aussage:Format Zeichenfolge von CultureInfo

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

Aber es funktioniert nicht. Was ist das Problem.

Kann mir jemand helfen ???

Antwort

66

Verwenden Sie das Currency Standardformat Zeichenkette zusammen mit der string.Format Methode, die eine nimmt Formatanbieter:

Die CultureInfo kann als Formatanbieter fungieren und erhält außerdem das korrekte Währungssymbol für die Kultur.

würde Ihr Beispiel dann lesen (zur besseren Lesbarkeit im Abstand):

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

Ist dies wirklich funktionieren? Sie wenden eine Kultur auf eine Saite an, von der ich glaube, dass sie keinen Einfluss hat. –

+0

@Joe: Ja, es funktioniert - versuchen Sie es und sehen. – adrianbanks

+0

Das habe ich ausprobiert: string foo = String.Format (new System.Globalization.CultureInfo ("en-GB"), "{0: C}", Convert.ToString (3.01)); –

2

Versuchen genaues Währungsformat

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

Wie wäre es

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

Dies sollte funktionieren angeben:

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

ich eine zusätzliche relevante Antwort zu zeigen, wie die Verwendung eines geklonten Cultureinfo-Objekt in einem string.Format() oder StringBuffer.AppendFormat hinzufügen wollte(). Anstelle von Währung musste ich den AM/PM-Bezeichner für den Styleguide meines Arbeitgebers formatieren. Hier ist, was ich getan habe:

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

Sie können mit string.Format das gleiche tun():

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