Numbers を次のように変更するにはどうすればよいですか。
1000
なるはず1.000,00
です、私が持っているときは700
、そうでなければなりません700,00
。
しようstring.Format("{0:0,000.00}", Number)
とすると になって700
しまう0.700,00
のでダメです。
Numbers を次のように変更するにはどうすればよいですか。
1000
なるはず1.000,00
です、私が持っているときは700
、そうでなければなりません700,00
。
しようstring.Format("{0:0,000.00}", Number)
とすると になって700
しまう0.700,00
のでダメです。
あなたが必要
string.Format("{0:#,##0.00}", Number)
先頭のプレースホルダーをゼロではなく # として指定する必要があるため、オプションになります。
ただし、数字の形式を「強引に」設定するよりも、どの文化の形式を目指しているかCultureInfo
を調べて、string.format に正しい形式を指定する方がよい場合があります。String.Format
次のように書式設定のカルチャを指定できます。
var culture = CultureInfo.GetCultureInfo("fr-FR");
var formattedNumber = string.Format(culture , "{0:n}", Number);
(私は純粋に例としてフランス語を使用することを選択しました。これは、例の要件に一致するように思われるためです)。
すべきでないことは{0:n}
、特定の形式を使用することに関心がある場合、カルチャを指定せずに使用することです。これは、ユーザー/システムのカルチャ設定に完全に依存するためです。
string.Formatに適切な値を指定CultureInfo
します。
小数点区切り記号を 、千単位区切り記号を にしたいとします。
最善の方法は、一貫性を保つためにアプリケーション レベルでこれを定義することです。
Winフォーム:
program.cs 内
System.Threading.Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberDecimalSeparator = ",";
System.Threading.Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberGroupSeparator = ".";
ASP.NET
ベースページを定義し、次を実行します。
protected override void InitializeCulture()
{
base.InitializeCulture();
System.Threading.Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberDecimalSeparator = ",";
System.Threading.Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberGroupSeparator = ".";
}
必要に応じて NumberFormat を設定してみましたか
NumberFormatInfo num = new NumberFormatInfo();
num.NumberDecimalSeparator = ",";
num.NumberGroupSeparator = ".";
string samp = 70000.00.ToString("N2",num); // prints 70.000,00
書式文字列を使用して数値を書式設定する場合、.
は、書式設定に使用されているカルチャの小数点記号のプレースホルダーです。は,
、千単位の区切り記号としても同様に使用されます。
,
これらを正しい場所で使用し、小数点記号と桁区切り記号に aを使用するカルチャを使用する必要があります.
。
string.Format(CultureInfo.GetCultureInfo("de-DE"), "{0:n}", 1000)
を生成し1.000,00
ます。
string.Format(CultureInfo.GetCultureInfo("en-GB"), "{0:n}", 1000)
を生成し1,000.00
ます。
試してみてくださいString.Format("#,0.##")
。わたしにはできる。
入力: 800
出力: 800,00
入力: 1400
出力: 1.400,00
数値形式にはドイツ文化を使用しています。文化によっては、指定する必要があるかもしれません。
これを試して String.Format("{0:n}", 1000 )