webdevqa.jp.net

10進数(.net)にコンマ千区切り文字を追加します

私は10進数、たとえば1234.500を持っています。

1,234.5と表示したいのですが。

現在、末尾の「0」を削除するために、これをdoubleに変換しています。

string.Format("{0:0,0}",1234.500)は小数点以下の桁数を削除し、他のフォーマットオプションは小数点以下2桁を使用しているようです。

誰かが洞察を提供できますか?

17
maxp

#,##0.00のようなカスタムフォーマットを使用する必要があります

string s = string.Format("{0:#,##0.00}", xx);

Xx = 1234.5Mの場合、1,234.50を生成します
doubleへの変換を忘れてください、それは本当に役に立ちません。

24
Henk Holterman

.NETには、アプリケーションの各ユーザーの地域設定に従って数値を正しくフォーマットするための組み込みサポートがあることをご存知ですか?ユーザー自身の地域設定を活用する方がよい場合があります(.NET Frameworkはすべての適切な設定を既に認識しています)。

ただし、特定の地域設定で数値をフォーマットするようにアプリケーションを修正する場合でも、選択した特定のロケールを使用して、.NETに(数値だけでなく)すべてのフォーマットの基礎としてそれを使用させることができます。

using System.Globalization;
using System.Threading;
...
CultureInfo us = new CultureInfo("en-US");

その後

Thread.CurrentThread.CurrentUICulture = us;

あるいは単に

Console.WriteLine(d.ToString("c", us));

英国と米国では、千単位の区切り文字としてコンマを使用するのが適切ですが、他の国では千単位を表示する方法ではないことに注意してください。

「125は、米国では1,025、ドイツでは1.025と表示されます。スウェーデンでは、千単位の区切り文字はスペースです。」

MSDNには専用のセクションがあります 「グローバリゼーション」と呼ばれるこのトピックに専念しています(つまり、詳細を調べる必要がある場合は、これが適切な検索用語です)。このページでは、ポンド記号の使用が後続ゼロを削除するための数字プレースホルダーとしてどのように機能するかを説明しています(以前のコメントでHenk Holtermanが示唆したように)。

カスタム数値形式文字列 も参照してください。

10
rohancragg

別の選択肢:

decimal d = 1234.56m;
string s = d.ToString("N");    // 1,234.56
8
LukeH

これを試しましたか?

   String.Format("{0:0,0.00}", 1234.560);
0
junmats

これを試して:

string myNumber = string.Format("{0:#,0.00}", 1234.500);

(私はこれをRDLCレポートで見ました)

これを試して !

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        Try
            TextBox1.Text = Format(CInt(TextBox1.Text), "#,#")
            TextBox1.SelectionStart = TextBox1.Text.Length
        Catch ex As Exception

        End Try

End Sub
0
Agung