یک برنامه‌ی کنسول به زبان C# بنویسید که یک لیست از اعداد اعشاری (double) و یک عدد صحیح n برای تعداد رقم‌های اعشاری دریافت کند و برای هر عدد مقدارtruncate شده تا n رقم اعشار (بدون گرد کردن) را با استفاده از Math.Truncate نمایش دهد.

14.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:43

0.0

روش حل: برای هر عدد، آن را در 10^n ضرب کنید، از Math.Truncate برای حذف بخش کسری استفاده کنید و سپس حاصل را بر 10^n تقسیم کنید تا مقدارtruncate شده به دست آید. برای زبان C# از حلقه‌ی ساده یا آرایه برای پردازش لیست استفاده کنید و ضریب را یک‌بار محاسبه کنید (double multiplier = Math.Pow(10, n)) تا از محاسبات تکراری جلوگیری شود. نکته‌ها: Math.Truncate بخش اعشاری را به سمت صفر حذف می‌کند، برای دقت مالی بهتر از decimal استفاده کنید و در صورت نیاز به عملکرد بالاتر می‌توانید پردازش را با Parallel.For موازی‌سازی کنید.

توسط پژوهشگر در 201 روز قبل ساعت 03:43
دسته بندی ها: C# C# for beginner
nima در 201 روز قبل ساعت 05:28

برای به‌دست آوردن مقدار ترانکته‌شده با n رقم اعشار، multiplier = Math.Pow(10, n) را یک‌بار محاسبه کنید، عدد را در multiplier ضرب کنید و با Math.Truncate آن را حذف کنید، سپس نتیجه را بر multiplier تقسیم کنید. توجه کنید Math.Truncate تنها بخش اعشاری را به سمت صفر حذف می‌کند و برای محاسبات مالی بهتر است از decimal استفاده شود. برای افزایش کارایی می‌توانید از Parallel.For یا پردازش آرایه به‌طور موازی استفاده کنید. همچنین مطمئن شوید n≥0 باشد تا از رفتار نامطلوب یا overflow جلوگیری شود.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری