2008-09-01 8 views
2

asp.netテキストボックスをSQL 2005 moneyデータタイプフィールドに設定しようとしていますが、ユーザーに表示される初期結果は40.00ではなく40.0000です。 私のasp.netのテキストボックスコントロールでは、小数点の後の最初の2つの数字だけを表示したいと思います。 40.00ASP 2005のマネーデータタイプをASP.Netに表示/書式設定する最良の方法

これを行うにはどうすればよいでしょうか? 私のコードは以下の通りです:

this.txtPayment.Text = dr["Payment"].ToString(); 

答えて

2
this.txtPayment.Text = string.Format("{0:c}", dr[Payment"].ToString()); 
0

は、通貨としてそれをフォーマットする "C" とToStringメソッドメソッドを使用します。それは、たとえば、中にWindowsフォームと同様に

this.txtPayment.Text = dr["Payment"].ToString("c"); 

Standard Numeric Format Strings

2

は同じようにASP.NETの "C" フォーマット文字列の仕事をしていますか? WinFormsでは、クライアントの通貨設定のに従っていると私は確信しています。したがって、値が米ドルで保存されていても、クライアントPCが円を表示するように設定されている場合は、それが表示される通貨記号になります。それはあなたが望むものではないかもしれません。

それを使用する場合だ場合、それが賢明かもしれ:

txtPayment.Text = dr["Payment"].ToString("00.00") 
0

@Mattハミルトン

それはありません。 "c"はCurrentCultureInfoが何であっても動作しますが、ウェブアプリケーションのすべてのユーザがサーバと同じ通貨を持っていれば問題になります。そうしないと、cultureinfoクライアントを取得しそこから集めた通貨を使用する必要があります。

0

は、いくつかの研究の後、私は、次のを思い付いた:

string pmt = dr["Payment"].ToString(); 
double dblPmt = System.Convert.ToDouble(pmt); 
this.txtPayment.Text = dblPmt.ToString("c",CultureInfo.CurrentCulture.NumberFormat); 

私は与えられたすべてのコードサンプルをテストするつもりです。コードの1行でこれを解決できれば、私は何をしようとしているのでしょうか。

関連する問題