Module: متغیرها. فرمت های خروجی


Problem

5/5

دقت خروجی

Theory Click to read/hide

مشخص کننده های خروجی
برای خروجی مقادیر واقعی، فقط روش Console.Write یا Console.WriteLine:
را فراخوانی کنید.   دو برابر = 0.9999; Console.Write(a);  
اما گاهی اوقات لازم است خروجی مقادیر را از قبل قالب بندی کنید، انجام این کار با استفاده از روش String.Format راحت است، جزئیات بیشتر اینجا.
خروجی با دقت خاصی
برای قالب بندی اعداد کسری از مشخص کننده f استفاده می شود که عدد پس از آن نشان می دهد که چند کاراکتر بعد از جداکننده خواهد بود. دو برابر = 12.123; Console.WriteLine(String.Format("{0:f2}"، a)); نتیجه 12،12 خواهد بود، اما اگر از مقدار 0.9999 استفاده کنید، گرد کردن کنترل نشده رخ خواهد داد و   1.00.

بنابراین، الگوریتم زیر برای دور انداختن علائم به جای گرد کردن استفاده می‌شود:
1) مقدار اصلی را در 10 ضرب کنید، به تعداد دفعاتی که باید اعشار را ترک کنید؛
2) با استفاده از روش   Math.Truncate، فقط قسمت عدد صحیح را باقی می گذاریم؛
3) مقدار به دست آمده را بر 10 تقسیم کنید،  به تعداد دفعاتی که باید اعشار را ترک کنید.

مثال برای خروجی با دقت دو اعشاری: 
دو برابر = 0.9999; a = a * Math.Pow(10, 2); a = Math.Truncate(a); a = a / Math.Pow(10, 2);
 
نوع جداکننده هنگام خروجی (نقطه یا کاما) به تنظیمات منطقه ای رایانه بستگی دارد، بنابراین برای اینکه همیشه از نقطه به عنوان جداکننده استفاده کنید، باید تنظیمات منطقه ای را به invariant، مثال حاصل:
 
CultureInfo ci = new CultureInfo(""); دو برابر = 0.9999; a = a * Math.Pow(10, 2); a = Math.Truncate(a); a = a / Math.Pow(10, 2); Console.WriteLine(a.ToString(ci));

Problem

برنامه ای بنویسید که مقدار یک متغیر را با 2 رقم اعشار چاپ کند.