سلام و وقت بخیر خدمت دوستان گرامی آیا راهی هست یا این امکان وجود دارد که از طریق کد نویسی در سی شارپ بتوان وارد تنظیمات کنترل پنل مثلا Control Panel\Region\Format\Currency\Decimal symbol بشویم با تشکر و سپاس
سلام و وقت بخیر خدمت دوستان گرامی آیا راهی هست یا این امکان وجود دارد که از طریق کد نویسی در سی شارپ بتوان وارد تنظیمات کنترل پنل مثلا Control Panel\Region\Format\Currency\Decimal symbol بشویم با تشکر و سپاس
سلام و روز خوش
باید cultureinfo مربوط به currentthread رو بخونین و numberformatinfo رو چک کنین:
NumberFormatInfo Class
using system.globalization ;
numberformatinfo NFI= system.threading.thread.currentthread.currentcultu re.numberformat ;
string CDS= NFI.currencydecimalseparator ;
string NDS= NFI.numberdecimalseparator ;
سلام دوباره
لازم نیست چیزی رو تغییر بدین. کافی هست یک کپی از culture بسازین و هر چیزی که نیاز هست رو در اون تغییر بدین.
حالا هر جا خواستین مقداری رو نمایش بدین با این کالچر جدید فرمت کنین:
cultureinfo CI=new cultureinfo(cultureinfo.currentculture.name) ;
CI.numberformat.currencydecimaldigits= 1 ;
CI.numberformat.currencydecimalseparator= "/" ;
CI.numberformat.currencygroupseparator= "'" ;
CI.numberformat.currencysymbol= "@" ;
float X= 987650.4321F ;
string CustomCulture_Formatted= X.tostring("c",CI) ; // @987'650/4
اون پراپرتی ها که کاربردشون از روی اسمشون مشخصه : جدا کننده ارقام و نماد پول؛یک توضیح در باره کاربرد کد های زیر بدهید
اون نمونه خروجی رو دقت کنین.
کدی که ارائه شده، از CultureInfo برای تنظیم یک فرهنگ خاص برای فرمتبندی اعداد و ارزها (currency) استفاده میکند. در اینجا، به تفصیل توضیح هر بخش از کد در ذیل ارائه می شود:
CultureInfo CI = new CultureInfo(CultureInfo.CurrentCulture.Name);: در این خط، یک نمونه از CultureInfo ایجاد میشود. این CultureInfo بر اساس فرهنگ فعلی سیستم (برگرفته از CultureInfo.CurrentCulture) ایجاد میشود.
CI.NumberFormat.CurrencyDecimalDigits = 1;: این خط کاراکترهای اعشار ارز را تنظیم میکند. با تعیین مقدار 1 برای CurrencyDecimalDigits، اعشار تا یک رقم نمایش داده میشود.
CI.NumberFormat.CurrencyDecimalSeparator = "/";: این خط جداکننده اعشار ارز را تنظیم میکند. در اینجا، / به عنوان جداکننده اعشار انتخاب شده است.
CI.NumberFormat.CurrencyGroupSeparator = "'";: این خط جداکننده گروههای ارز (مانند هزارگان و میلیونها) را تعیین میکند. با تنظیم ' به عنوان جداکننده گروهها، اعداد به صورت مثلاً 987'650 نمایش داده میشوند.
CI.NumberFormat.CurrencySymbol = "@";: این خط نماد ارز را تنظیم میکند. در اینجا، @ به عنوان نماد ارز انتخاب شده است.
float X = 987650.4321F;: یک عدد اعشاری به نام X تعریف میشود.
string CustomCulture_Formatted = X.ToString("c", CI);: این خط اعداد را با استفاده از فرهنگ سفارشی (CI) به فرمت ارز ("c") تبدیل میکند. نتیجه این تبدیل در متغیر CustomCulture_Formatted ذخیره میشود. در اینجا، 987'650/4 به عنوان نتیجه نمایش داده میشود که از تنظیمات سفارشی CI برای جداکننده اعشار، جداکننده گروهها، و نماد ارز استفاده میکند.