كيفية تعيين Currencysymbol على CellowNuly CultureInfo.numbormat؟
-
11-09-2019 - |
سؤال
أحاول تهيئة العملة (Swiss Frank - de-de-dech) برمز (CHF) يختلف عن ما هو ثقافة .NET الافتراضية (SFR.). المشكلة هي أن numberformat للثقافة هو إعادة التأثير.
هل هناك طريقة بسيطة لحل هذه المشكلة باستخدام cultureinfo و numberformat؟ هل هناك بعض الطرق يمكنني تجاوز currencysymbol؟
مثال:
Dim newCInfo As CultureInfo = CultureInfo.GetCultureInfo(2055)
newCInfo.NumberFormat.CurrencySymbol = "CHF"
MyCurrencyText.Text = x.ToString("c",newCInfo)
سيؤدي هذا إلى خطأ في إعداد NumberFormat.CurrencySymbol
لأن NumberFormat
يكون **ReadOnly**
.
شكرا!
المحلول
يتصل Clone
على ال CultureInfo
, ، والتي ستقوم بإنشاء نسخة قابلة للتغيير، ثم قم بتعيين رمز العملة.
قد تكون أكثر تحديدا: جلب NumberFormatInfo
و فقط استنساخ ذلك. إنه أكثر أناقة قليلا، IMO، ما لم تكن بحاجة إلى تغيير أي شيء آخر في الثقافة.
مثال في C #:
using System;
using System.Globalization;
class Test
{
static void Main()
{
CultureInfo original = CultureInfo.GetCultureInfo(2055);
NumberFormatInfo mutableNfi = (NumberFormatInfo) original.NumberFormat.Clone();
mutableNfi.CurrencySymbol = "X";
Console.WriteLine(50.ToString("C", mutableNfi));
}
}
لا تنتمي إلى StackOverflow