web-dev-qa-db-ja.com

ToString( "N2")とToString( "0.00")の違い

ToString("N2")ToString("0.00")の違いは何ですか?

37
Rupa Mistry

From 標準の数値フォーマット文字列

数値は「-d、ddd、ddd.ddd…」形式の文字列に変換されます。「-」は必要に応じて負の数値記号を示し、「d」は数字(0〜9)を示し、「、」は数値グループ間の千の区切り文字、および「。」小数点記号を示します。

Nには3桁の区切り文字が含まれているように見えますが、0.00 しない。

カスタム数値フォーマット文字列 も参照してください

34
Adriaan Stander

基本的に、ToString("N2")CultureInfoを使用して数値をフォーマットします。これは、使用するCultureInfoに応じて千単位の区切り文字が異なる可能性があることを意味します。必要に応じて、必要なCultureInfoを渡すこともできます。

14
arbbot

それはすべて小数点以下の桁です

N2は500.00でも同じように機能しますが、5000.00がある場合はN2は次のように表示されます

5,000.00

の代わりに

5000.00

詳細については、「 標準の数値書式文字列 」を参照してください。

11
Sam Jones

どちらも小数点以下2桁を与えますが、大きな数字をチェックすると簡単に違いを確認できます。

var d = 1234567.89;
for (var i = 0; i < 10; ++i) {
    Console.WriteLine(d.ToString("N2") + "\t" + d.ToString("0.00"));
    d /= 10.0;
}

出力

1.234.567,89    1234567,89
123.456,79  123456,79
12.345,68   12345,68
1.234,57    1234,57
123,46  123,46
12,35   12,35
1,23    1,23
0,12    0,12
0,01    0,01
0,00    0,00

dotnetfiddle.netでオンラインでコードを実行

4
Karsten Gutjahr

桁区切り記号は問題です。 「n2」を使用すると3,543が得られますが、「0.00」を使用すると3543が得られます。コンマは、特にクライアント側のjsなど、その値を10進数に解析する必要があるダウンストリームコードを分割できます。

3
markd