PDA

View Full Version : محاسبات روی اعداد اعشاری



ایلیا آخوندزاده
یک شنبه 12 آبان 1398, 22:43 عصر
با سلام
دوستان عدد مفروض من یک عدد خیلی بزرگ هست که نوع داده ای نتونه اونو ذخیره کنه برای همین از آرایه استفاده میکنم
برای چهار عمل اصلی روی این آرایه زمانی که عدد ذخیره شده صحیح باشه مشکلی نیست و دو آرایه رو اندیس به اندیس محاسبه میکنم و نتیجه میره به آرایه سوم.
حالا مشکل اینجاست که توی این الگوریتم چطوری میشه اعداد اعشاری رو ذخیره و روش عملیات ریاضی انجام داد؟
بصورت مثال این اعداد رو در نظر بگیرید:
66650000000000.20012
251500009555255.9595
این رو چجوری میشه ذخیره کرد و محاسبه کرد؟
دقت کنید که هیچ روش جایگزینی مد نظر نیست فقط از روش آرایه
پیشاپیش ممنون

the king
یک شنبه 26 آبان 1398, 21:02 عصر
برای نگهداری ممیز دو تا روش مشخص وجود داره، ممیز ثابت و ممیز شناور. در ممیز ثابت شما از قبل مشخص می کنید که فرضا این ارقامی که من در آرایه 100 خانه ای ذخیره می کنم 20 رقمش رو اختصاص میدم به بعد از ممیز (قسمت اعشاری)
و بقیه برای قسمت صحیح بدون اعشار. اونوقت وقتی دارید اعداد رو نمایش میدید اون 20 خانه رو در بخش بعد اعشار نمایش میدید.
مثلا 31400 رو با چهار رقم بعد اعشار بصورت 3.14 تفسیر می کنید.
مزیت ممیز ثابت در اینه که دقت محاسبات اعشاری اش بالا است چون تا ار بزرگترین رقم تا ریزترین رقم های بعد اعشار با دقت مشخص شده حفظ میشه و گرد شدن صورت نمی گیره.
برای همین در محاسبات مالی از ممیز ثابت استفاده می کنند.

در ممیز شناور تعداد رقم های بعد اعشار ثابت و از پیش تعیین شده نیست، پس باید یک متغیری یا خانه ای از حافظه رو بهش اختصاص بدید که مشخص کنه در این آرایه من چند رقم مربوط به بعد از اعشار ئه.
ممکنه در یک آرایه تون تعداد رقم بعد اعشار صفر باشه و در آرایه دیگری بیست رقم.