VB.NET FormatNumber ما يعادلها في C# ؟
سؤال
هل هناك C# يعادل بالنسبة VB.NET FormatNumber
وظيفة ؟
I. e.:
JSArrayString += "^" + (String)FormatNumber(inv.RRP * oCountry.ExchangeRate, 2);
المحلول
سواء في C# ، VB.NET يمكنك استخدام إما .ToString() وظيفة أو السلسلة.شكل() طريقة تنسيق النص.
باستخدام .ToString() المثال الخاص بك يمكن أن تكون مكتوبة على النحو التالي:
JSArrayString += "^" + (inv.RRP * oCountry.ExchangeRate).ToString("#0.00")
بدلا من ذلك باستخدام السلسلة.شكل() فإنه يمكن كتابة:
JSArrayString = String.Format("{0}^{1:#0.00}",JSArrayString,(inv.RRP * oCountry.ExchangeRate))
في كل من الحالات المذكورة أعلاه استخدمت مخصص تنسيق العملة مع # يمثلون اختياري مكان حامل 0 يمثل 0 أو القيمة إن وجد.
غيرها من أحرف التنسيق يمكن أن تستخدم للمساعدة في تنسيق مثل D2 2 عشرية أو مئوية إلى عرض العملة.في هذه الحالة كنت لا ترغب في استخدام C المنسق لأن هذا من شأنه أن إدخال رمز العملة وزيادة الفواصل التي لم تكن مطلوبة.
انظر "السلسلة.Format("{0}", "تنسيق سلسلة"};"أو "سلسلة تنسيق الباحث"لمزيد من المعلومات و الأمثلة على كيفية استخدام سلسلة.شكل مختلف خيارات التنسيق.
نصائح أخرى
نعم .ToString(سلسلة) الأساليب.فعلى سبيل المثال ،
int number = 32;
string formatted = number.ToString("D4");
Console.WriteLine(formatted);
// Shows 0032
علما أنه في C# لا تستخدم عددا من تحديد شكل, ولكن يمكنك استخدام حرف أو سلسلة من الأحرف.تنسيق الأرقام والتواريخ في C# يستغرق بعض دقائق للتعلم ، ولكن بمجرد فهم المبدأ ، يمكنك بسرعة الحصول على أي شيء تريده من النظر في الإشارة.
هنا بضعة MSDN المواد للحصول على أنك بدأته :
يمكنك استخدام سلسلة formatters لتحقيق نفس الشيء.
double MyNumber = inv.RRP * oCountry.ExchangeRate;
JSArrayString += "^" + MyNumber.ToString("#0.00");
بينما أود أن أوصي باستخدام ToString في هذه الحالة نضع في اعتبارنا دائما يمكنك استخدام أي VB.Net وظيفة أو فئة من C# فقط عن طريق الرجوع Microsoft.VisalBasic.dll.