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