web-dev-qa-db-ja.com

ダブルに変換して千の区切り記号(コンマ)を挿入する方法

テキストボックスの内容をフォーマットしようとしています。

this.lblSearchResults1.Text =
    Convert.ToDouble(lblSearchResults1.Text).ToString(); 

テキストにコンマ/千の区切り文字が含まれるようにこれを修正するにはどうすればよいですか?

つまり、1000ではなく1,000です。

45
Ricardo Deano

完全なカスタムコントロールには、... .ToString("#,##0.00")またはそのバリエーションを使用します。 .,は、カルチャ依存のシンボルに置き換えられます。ほとんどのヨーロッパでは、1.234,56が得られます。
別の有用な画像は0.0#です。

ユーザー(または選択した)カルチャに応じたパターンを使用するには、.ToString("N")または"... {0:N}"のように、 数値( "N")形式指定子 を使用します。

51
Henk Holterman

標準の数値フォーマット文字列 を見てください:

ユーザーカルチャに基づいて正しいことを実行する 'N'を最も簡単に使用できるため、この場合、ToStringにパラメーターとして "N"を追加するだけです。

([double]12345.67).ToString("N")

12,345.67

72
James Manning

Standard Numeric Format Strings を詳しく見ると、次のいずれかを試すことができます。

.ToString("n", CultureInfo.GetCultureInfo("en-US"))
.ToString("n", CultureInfo.GetCultureInfo("de-DE"))
.ToString("n", CultureInfo.CurrentCulture)
8
Oliver

上記の応答に代わるものは、使用することです

this.lblSearchResults1.Text = String.Format("{0:N}", Convert.ToDouble(lblSearchResults1.Text))

小数点以下の桁数が必要な場合は、Nの後の小数点以下の桁数を入力します。次の例では、小数点以下2桁の値が返されます。

this.lblSearchResults1.Text = String.Format("{0:N2}", Convert.ToDouble(lblSearchResults1.Text))

詳細については、 http://msdn.Microsoft.com/en-us/library/system.string.format.aspx を参照してください。

5
Duu82

最も簡単な方法は次のようなものです:

Convert.ToDouble("1234567.12345").ToString("N")

小数点以下の桁数を制御する場合は、次のようなことができます。

Convert.ToDouble("1234567.12345").ToString("N3")

一般的に、よりエキサイティングな可能性については、ToStringのオーバーロードを見てください。

1
Chris