2009-08-12 16 views
29

ポンド記号と書式0.00、つまり£45.00、£4.10を表示したい。私は次のステートメントを使用しています:CultureInfoの書式文字列

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

しかし、動作しません。何が問題ですか。

誰でも私を助けることができますか?

答えて

66

がかかるstring.Format方法とともにCurrency標準フォーマット文字列を使用しますフォーマットプロバイダ:

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

CultureInfoはフォーマットプロバイダとして機能し、カルチャの正しい通貨記号を取得します。

あなたの例で、その後(読みやすくするために間隔)読んでいました:私はString.Formatの(中にクローン化された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> 
+0

これは実際に動作しますか?あなたは文字列に文化を適用していますが、それは影響がないと思います。 –

+0

@Joe:はい、動作します - 試して見てください。 – adrianbanks

+0

これは私が試したものです:string foo = String.Format( "En-GB")、 "{0:C}"、Convert.ToString(3.01));新しいSystem.Globalization.CultureInfo –

2

について

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

を指定してみてください。

<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

これがどのように動作するかを正確に通貨フォーマットに

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

)または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);