文字列を表示するときに、 '、'文字を1000の区切り文字として使用せず、代わりにスペースを使用しようとしています。カスタムカルチャーを定義する必要があると思いますが、正しく理解していないようです。ポインタはありますか?
例:1000000を1,000,000ではなく1 000 000として表示
(いいえ、String.Replace()
は私が使用したいソリューションではありません:P)
NumberFormatInfo
は、あなたが望むものに最も近いものを見つけることをお勧めします(つまり、桁区切り記号から離れているため) Clone()
を呼び出します=オンにして、 NumberGroupSeparator
プロパティを設定します。 (通貨フォーマットを使用して数値をフォーマットする場合は、代わりに CurrencyGroupSeparator
も変更する必要があります。)string.Format
などへの呼び出しのフォーマット情報としてそれを使用してください。そして、あなたは大丈夫です。例えば:
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")