چهارشنبه ۱۹ تیر ۱۳۹۲ ارسال شده توسط prodo
با توجه به این که در `C++` از `IEEE754` استفاده میشه پس باید دقت اعداد اعشاری رو در این استاندارد بررسی کنیم.
دقت عدد اعشاری در سیستم `IEEE754` به توان ۲ بستگی داره. از اونجا که تعداد ارقام توان برای اعداد اعشاری در بازههای مختلف ثابت هست و به استاندارد مربوطه، بنابراین دقت اعداد اعشاری در بازههای مختلف تفاوتی نداره.
دوشنبه ۱۴ مرداد ۱۳۹۲ ویرایش شده توسط prodo
با توجه به این که در `C++` از `IEEE754` استفاده میشه پس باید دقت اعداد اعشاری رو در این استاندارد بررسی کنیم.
دقت <strike>دقت عدد اعشاری در سیستم `IEEE754` به توان ۲ بستگی داره. از اونجا که تعداد ارقام توان برای اعداد اعشاری در بازههای مختلف ثابت هست و به استاندارد مربوطه، بنابراین دقت اعداد اعشاری در بازههای مختلف تفاوتی نداره. </strike>
به طور کلی دقت اعداد اعشاری در بازههای کوچکتر بیشتر و در بازههای بزرگتر کمتر هست. فرض کنیم یک عدد به صورت ممیز شناور ذخیره شده دقت به صورت زیر محاسبه میشه
precision = 2^{p-s+1}
که `s` تعداد ارقام بامعنی در اون نوع دادهی ممیز شناور و `p` توان به دست اومده قبل از تاثیر آفست هست.
یکشنبه ۱۹ آبان ۱۳۹۲ ویرایش شده توسط prodo
با توجه به این که در `C++` از `IEEE754` استفاده میشه پس باید دقت اعداد اعشاری رو در این استاندارد بررسی کنیم.
<strike>دقت عدد اعشاری در سیستم `IEEE754` به توان ۲ بستگی داره. از اونجا که تعداد ارقام توان برای اعداد اعشاری در بازههای مختلف ثابت هست و به استاندارد مربوطه، بنابراین دقت اعداد اعشاری در بازههای مختلف تفاوتی نداره. </strike>
به طور کلی دقت اعداد اعشاری در بازههای کوچکتر بیشتر و در بازههای بزرگتر کمتر هست. فرض کنیم یک عدد به صورت ممیز شناور ذخیره شده دقت به صورت زیر محاسبه میشه
precision = 2^{p-s+1}
که `s` تعداد ارقام بامعنی در اون نوع دادهی ممیز شناور و `p` توان به دست اومده قبل از تاثیر آفست هست.
در روش ذخیرهسازی ممیز شناور، اعداد با `n` رقم اعشار در نزدیکی صفر به هم نزدیکتر هستند تا اعداد با `n` رقم اعشار در نزدیکی یک و اعداد با `n` رقم اعشار در نزدیکی یک به هم نزدیکتر هستند تا اعداد با `n` رقم اعشار در نزدیکی دو. بنابراین
**قاعدهی کلی**: در ممیز شناور هرچه اعداد بزرگتر میشوند (در صورتی که از نظر ریاضی دقت آنها ثابت باشد) از نظر پیادهسازی IEEE754 دقت آنها کمتر میشود.
**مثال**: عدد `1.123412341234` از نظر ریاضی دقتی برابر `1234.123412341234` دارد اما از نظر پیادهسازی ممیز شناور دقت عدد بزرگتر کمتر خواهد بود.