文字列を表示するときに「,」文字を千の区切り文字として使用するのではなく、代わりにスペースを使用しようとしています。カスタム カルチャを定義する必要があると思いますが、うまくいかないようです。ポインタはありますか?
例: 1000000 を 1,000,000 ではなく 1 000 000 と表示する
(いいえ、String.Replace()
私が使いたい解決策ではありません:P)
文字列を表示するときに「,」文字を千の区切り文字として使用するのではなく、代わりにスペースを使用しようとしています。カスタム カルチャを定義する必要があると思いますが、うまくいかないようです。ポインタはありますか?
例: 1000000 を 1,000,000 ではなく 1 000 000 と表示する
(いいえ、String.Replace()
私が使いたい解決策ではありません:P)
必要なものに最も近いa を見つけてNumberFormatInfo
(つまり、千単位の区切り記号から離れている)、Clone()
それを呼び出してプロパティを設定することをお勧めしNumberGroupSeparator
ます。CurrencyGroupSeparator
(通貨形式を使用して数値をフォーマットする場合は、代わりに/同様に変更する必要があります。)それをstring.Format
etc への呼び出しの形式情報として使用すれば、問題ありません。例えば:
using System;
using System.Globalization;
class Test
{
static void Main()
{
NumberFormatInfo nfi = (NumberFormatInfo)
CultureInfo.InvariantCulture.NumberFormat.Clone();
nfi.NumberGroupSeparator = " ";
Console.WriteLine(12345.ToString("n", nfi)); // 12 345.00
}
}
別の桁区切り記号を使用して、独自のNumberFormatInfo (派生物) を作成します。
Jon Skeet one の少し単純なバージョンがあります。
using System;
using System.Globalization;
class Test
{
static void Main()
{
NumberFormatInfo nfi = new NumberFormatInfo {NumberGroupSeparator = " ", NumberDecimalDigits = 0};
Console.WriteLine(12345678.ToString("n", nfi)); // 12 345 678
}
}
また、「nfi」の初期化をスキップして、パラメーターとして直接 ToString() メソッドに入れることができます。
最も簡単な方法...
num.ToString("### ### ### ### ##0.00")