2017-02-14 5 views
-1

フォーマット指定子の両方decimal numbersdatesのためですが、実際にはそれが唯一の日付をフォーマット(もthis questionを参照してください):C#文字列「D」書式指定子

string.Format("{0:d}", DateTime.Now) // Works 
string.Format("{0:d}", 12.998m) // Exception 

それでは、それはなぜですか、それを使用して小数点をフォーマットすることが可能なのですか?

+0

ドキュメントで、それは 'D '指定子10進数にもあると言うのでしょうか? –

+0

@JayGould - *書式文字列*は大文字と小文字が区別されます。 VB.Netからこれらの同じ呼び出しを行うのとまったく同じ状況になります。これは、大文字と小文字を区別しない言語とみなされます。 –

+0

@ LasseV.Karlsen、最初のテーブル[ここ](https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110)aspx#DFormatString)、2行目、2列目、 – Sinatr

答えて

4

あなたがにリンクされているドキュメントは、この点ではかなりはっきりしている - Dが唯一の整数型

「D」(または10進数)書式指定子は、小数点以下の桁の数値を文字列に変換することによってサポートされています(0 -9)、数字が負の場合は負の符号が前に付いています。 この形式は、整数型に対してのみサポートされています。

出典:https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx#DFormatString

+0

Jamiecありがとう、私は気づきませんでしたが、私の意見ではまだ少し混乱しています。彼らは別の手紙を使っていたかもしれません。 :) – bcl

+0

@drevisはい、 "10進数"と呼ばれる形式を持つのは、整数型にのみ有効です。ちょっと混乱します。 – Jamiec

関連する問題