تغيير رمز العملة الموقع في System.Globalization.NumberFormatInfo
-
22-07-2019 - |
سؤال
وأنا إنشاء كائن CultureInfo باستخدام CultureInfo جديد ( "الاب-FR"). الآن لدي الرقم الذي أريد أن أدعو .ToString ( "C"، FrenchCultureInfo). السلسلة الناتجة يضع € AFTER الرقم. لماذا؟
CultureInfo french = new CultureInfo("fr-FR");
double value = 1234.56;
string output = value.ToString("C", french);//output = "1 234,56 €"
ومن كل ما رأيت، اليورو يجب أن يكون على اليسار، وولايتي متطلبات العمل أنه من الناحية اليسرى. ومع ذلك، لا توجد وسيلة لتعيين هذه القيمة برمجيا.
وأي أفكار عن كيف يمكن تعيين هذه القيمة بسهولة؟ لقد بدأت في اتخاذ كائن الثقافة الأمريكية ونسخ كل شيء من الثقافة الفرنسية إلى أكثر من ذلك، لأننا لا تزال تريد كل الإعدادات الفرنسية الأخرى، باستثناء اليورو على القيمة الصحيحة. ولكن هذه الطريقة تستغرق وقتا طويلا جدا ومحبطة.
وشكرا!
المحلول
واستنساخ الأصلي ثم تعديله:
CultureInfo french = new CultureInfo("fr-FR");
french = (CultureInfo) french.Clone();
// Adjust these to suit
french.NumberFormat.CurrencyPositivePattern = 2;
french.NumberFormat.CurrencyNegativePattern = 2;
double value = 1234.56;
string output = value.ToString("C", french);//output = "€ 1 234,56"
لاحظ أن هذا سوف يؤثر فقط على هذا الكائن CultureInfo
معين، ليست واحدة حصلت للغة الفرنسية في عام - لذلك ستحتاج للتأكد من استخدامها في كل مكان