18

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

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

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

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

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

4

6 に答える 6

26

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

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

1,234.50xx = 1234.5Mの場合、への
変換を忘れると生成doubleされますが、実際には役に立ちません。

于 2009-10-19T09:46:53.060 に答える
11

.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が提案したように)。

カスタム数値フォーマット文字列も参照してください。

于 2009-10-19T11:19:03.833 に答える
9

別の選択肢:

decimal d = 1234.56m;
string s = d.ToString("N");    // 1,234.56
于 2009-10-19T10:54:26.300 に答える
0

これを試しましたか?

   String.Format("{0:0,0.00}", 1234.560);
于 2009-10-19T09:48:46.477 に答える
0

これを試して !

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
于 2014-01-23T23:37:16.483 に答える
0

これを試して:

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

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

于 2017-10-07T03:40:20.053 に答える