String.Formatのは、文字列をフォーマットしません
-
12-09-2019 - |
質問
これは、String.Formatのは、入力として文字列をフォーマットしないであろうかのように思えます。私が何か間違ったこと、または本だけでネイティブ動作であるだろうか?
入力:0.37。
これは動作しません。
string x = String.Format("{0:P}", myString)
出力:0.37。
このはいます。
string x = String.Format("{0:P}", Convert.ToDecimal(myString))
出力:37.00パーセント
解決
私は、これは「複合書式設定」の振る舞いを期待されていると信じています。
あなたの最初の例では、文字列に数値の書式ルールを適用しようとしています。あなたの第二の例は、小数点以下の桁を持つことができる数に数値の書式ルールを適用しようとしています。
多くのためのMSDN のこの記事を参照してください。情報ます。
他のヒント
あなただけ適用しようとしているフォーマットオプションは、数値のために動作します。 CLRは、タイプの文字列を検査する.NETのスマート文字列の概念がありません。
私が何か間違ったこと、またはこれだけでネイティブ動作であるだろうか?
これはネイティブの行動です。それは基本的に文字列の入力を解釈するFormat
の仕事ではありません。あなたのケースでは、の数値のデータ - Format
は、ユーザーが適切なデータを提供することを想定しています。文字列は、それががの数(これは値/セマンティクスとその表現/構文の間CS内のすべての重要な違いです!)。
所属していません StackOverflow