تغيير رمز العملة الموقع في System.Globalization.NumberFormatInfo

StackOverflow https://stackoverflow.com/questions/1446273

  •  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 معين، ليست واحدة حصلت للغة الفرنسية في عام - لذلك ستحتاج للتأكد من استخدامها في كل مكان

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