コンマサウザンドセパレーターを小数点(.net)に追加する
-
22-09-2019 - |
質問
1234.500、たとえば10進数があります。
1,234.5として表示したいです。
現在、私はそれをダブルに変換して、末尾の '0を削除しています。
string.Format("{0:0,0}",1234.500)
小数の場所を削除し、他のフォーマットオプションは2つの小数に関係なく使用しているようです。
誰かが洞察を提供できますか?
解決
次のようなカスタムフォーマットを使用する必要があります #,##0.00
string s = string.Format("{0:#,##0.00}", xx);
生産します 1,234.50
xx = 1234.5mの場合
変換を忘れてください double
, 、それは本当に役に立ちません。
他のヒント
.NETには、アプリケーションの各ユーザーの地域設定に応じて、正確にフォーマットされた数字のサポートが組み込まれていることをご存知ですか?ユーザー自身の地域設定を活用する方が良いかもしれません(.NETフレームワークは、すでに適切な設定をすべて知っています)。
ただし、特定の地域の設定でアプリケーションをフォーマットに修正する場合でも、選択した特定のロケールを徴収し、それをすべてのフォーマット(数字だけでなく)の基礎として使用するように強制することができます。
using System.Globalization;
using System.Threading;
...
CultureInfo us = new CultureInfo("en-US");
その後
Thread.CurrentThread.CurrentUICulture = us;
あるいは単に
Console.WriteLine(d.ToString("c", us));
数千人のセパレーターとしてのコンマの使用は英国とアメリカに適していることに注意する必要がありますが、他の国で数千を表示する方法ではありません
「米国で1,025、ドイツで1.025として1,000と25が表示されます。スウェーデンでは、数千のセパレーターがスペースです」
MSDNには専用セクションがあります 彼らが「グローバリゼーション」と呼ぶこのトピックに専念しています(つまり、より詳細を追い詰める必要がある場合、それは良い検索用語です)。そのページでは、ポンドサインの使用が、後続のゼロを削除するための桁のプレースホルダーとしてどのように機能するかについて説明します(以前のコメントでヘンクホルターマンが示唆しているように)。
参照してください カスタム数値形式文字列.
別の選択肢:
decimal d = 1234.56m;
string s = d.ToString("N"); // 1,234.56
これを試しましたか?
String.Format("{0:0,0.00}", 1234.560);
これを試して !
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
これを試して:
string myNumber = string.Format("{0:#,0.00}", 1234.500);
(RDLCレポートでこれを見てきました)