سؤال

يبدو كما لو أن 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 للمزيد من المعلومات.

نصائح أخرى

خيار التنسيق الذي تحاول تطبيقه يعمل فقط للأرقام. لا يوجد مفهوم للأسلوتات الذكية في .NET التي يقوم CLR بتفتيش السلسلة لنوع.

هل أفعل شيئا خاطئا، أم أن هذا السلوك الأصلي فقط؟

هذا السلوك الأصلي. انها أساسا ليست وظيفة Format لتفسير إدخال السلسلة. Format يفترض أن المستخدم يوفر البيانات المناسبة - في قضيتك، رقمي بيانات. سلسلة ليست رقيقة، حتى لو كان ذلك يمثل رقم (هذا هو التمييز الأكثر أهمية في CS بين قيمة / دلالات وتمثيله / بناء جملة!).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top