PDA

View Full Version : سوال: فرمت با دقت متغير



رافعی مهدی
سه شنبه 18 تیر 1387, 08:25 صبح
سلام
چطور ميشه در تعيين فرمت نوشتاري يك عدد از دقت متغير استفاده كرد؟
مثلاً كد زير عدد 7.12345 رو فقط تا 3 رقم اعشار (دقت ثابت=3) برميگردونه:


string text = string.Format("{0:F3}", 7.12345);

حالا اگر بخواهيم كاربر اين دقت رو در غالب يك عدد صحيح (مثلاً n) مشخص كنه، چي؟

sinpin
سه شنبه 18 تیر 1387, 09:40 صبح
از متود Round در كلاس Math استفاده كنيد.

رافعی مهدی
سه شنبه 18 تیر 1387, 10:18 صبح
خب گويا سوال رو كامل مطرح نكردم. عذر مي خواهم.
مثلاً


string text = Math.Round(Number, 3).ToString();

به ازاي Number=7.12345 مقدار "7.123" رو ميده ولي به ازاي عدد 7.1 مقدار "7.1" رو برميگردونه در حالي كه من به دنبال اين هستم كه "7.100" رو داشته باشم. يعني دقت رقم به لحاظ فيزيكي برام اهميت داره نه رياضياتي.

sinpin
سه شنبه 18 تیر 1387, 10:23 صبح
double num = Math.Round(7.1, 3);
MessageBox.Show(num.ToString("0.000"));

رافعی مهدی
سه شنبه 18 تیر 1387, 11:33 صبح
بنابراين با كد زير ميشه اين كار رو انجام داد:



int n = 4;
string format="0.";
for (int i = 1; i <= n; format += "0", i++) ;
decimal Number = 7.12345M;
string text = Math.Round(Number, n).ToString(format);