PDA

View Full Version : فرمت نمایش اعداد در سی شارپ



HADI-ESF
شنبه 10 شهریور 1397, 06:40 صبح
با سلام وقت به خیر .
میخاستم عددم را به این فرمت نمایش بدم که سه رقم سه رقم عددم جدابشه از هم و قسمت اعشار هم صفر های سمت راستش حذف بشند
برای مثال داریم :

123456789.001111100000000
فرمت مورد انتظار برای نمایش :
123,456,789.0011111

طبق اون چیزی که من مطالعه کردم در سایت ماکروسافت باید از فرمت "#,#" برای جدا کردن 3 تای اعداد از هم استفاده کرد

و برای اینکه صفر های سمت راست اعشار حذف بشند از فرمت "G29" باید استفاده کرد

اما مشکلی که هست من نمیدونم چجوری هر دوی این فرمت هارو استفاده کنم . یا اصلا فرمت جداگانه ای برای این مورد وجود داره ؟

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings

Mahmoud.Afrad
شنبه 10 شهریور 1397, 09:08 صبح
decimal d = 123456789.123456789000000000m;
MessageBox.Show(d.ToString("#,0.################"));

HADI-ESF
شنبه 10 شهریور 1397, 10:58 صبح
سلام جناب مدیر واقعا ممنونم که پاسخم را دادید
اما یه سوال
نمیدونم چرا وقتی از فرمت G29 استفاده میکنم نصبت به فرمتی که شما دادید یا فرمت هایی که خودم استفاده کردم و یا زمانی که اصلا فرمتی نمیدیم یه تفاوتی هست
زمانی که از G29 استفاده میکنیم توی مقدار اعشارمون تفاوت هست . این تفاوت خیلی خیلی خیلی ریز هست
مثلا عددی داشتم که به فرمت G29 به شکل زیر نمایش داده میشده :

3.2808600000000001
اما زمانی که فرمت ندیم یا با فرمتی که شما ذکر کردید ، به شکل زیر نمایش داده میشه :

3.28086
جالب اینجاست که مقدار متغیر اعشاری ما داخل خود برنامه هم 3.28086 هست . من نمیفهمم چرا وقتی به فرمت G29 نمایش میدیم اون مقدار اعشار ظاهر میشه !!! :متفکر: :ناراحت: :افسرده: :گیج:

Mahmoud.Afrad
شنبه 10 شهریور 1397, 16:11 عصر
نوع متغیر را decimal انتخاب کنید.