2

Numbers を次のように変更するにはどうすればよいですか。

1000なるはず1.000,00です、私が持っているときは700、そうでなければなりません700,00
しようstring.Format("{0:0,000.00}", Number)とすると になって700しまう0.700,00のでダメです。

4

8 に答える 8

8

あなたが必要

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}、特定の形式を使用することに関心がある場合、カルチャを指定せずに使用することです。これは、ユーザー/システムのカルチャ設定に完全に依存するためです。

于 2012-04-18T12:08:09.103 に答える
6

string.Formatに適切な値を指定CultureInfoします。

于 2012-04-18T12:09:53.143 に答える
5

小数点区切り記号を 、千単位区切り記号を にしたいとします。

最善の方法は、一貫性を保つためにアプリケーション レベルでこれを定義することです。

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 = ".";                    
    }
于 2012-04-18T12:12:36.217 に答える
2

必要に応じて NumberFormat を設定してみましたか

NumberFormatInfo num = new NumberFormatInfo();

num.NumberDecimalSeparator = ",";
num.NumberGroupSeparator = ".";
string samp =  70000.00.ToString("N2",num); // prints 70.000,00
于 2012-04-18T12:14:33.410 に答える
2

書式文字列を使用して数値を書式設定する場合、.は、書式設定に使用されているカルチャの小数点記号のプレースホルダーです。,、千単位の区切り記号としても同様に使用されます。

,これらを正しい場所で使用し、小数点記号と桁区切り記号に 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ます。

于 2012-04-18T12:09:07.140 に答える
0

試してみてくださいString.Format("#,0.##")。わたしにはできる。
入力: 800
出力: 800,00

入力: 1400
出力: 1.400,00

数値形式にはドイツ文化を使用しています。文化によっては、指定する必要があるかもしれません。

于 2012-04-18T12:08:48.633 に答える
0

これを試して String.Format("{0:n}", 1000 )

于 2012-04-18T12:06:36.533 に答える