اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

تفاوت نوع داده‌ی double و long double چیست؟

0 امتیاز
1,507 نمایش
هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پرسیده شده یکشنبه ۱۹ آبان ۱۳۹۲ در C++ توسط prodo  

1 پاسخ

0 امتیاز

خب همانطور که از اسمش پیداست "long double" بازه ی بزرگتری از اعداد double نسبت به "double" داره...

پاسخ داده شده دوشنبه ۲۸ بهمن ۱۳۹۲ توسط FariborZ  

منظور از تفاوت، تفاوت در سند استاندارد C++ هست. مثلاً در C++ استاندارد long int حتماً بزرگ‌تر از int نیست و در بعشی از سیستم‌های ۳۲ بیتی int و long int هر دو چهاربایتی هستند.

اینی که شما میگید بستگی به کامپایلر داره... ولی در حالت general(کلی) "long double" نسبت به "double" هم range عددی بیشتری داره و هم تعداد اعشار بیشتری داره...
من درست متوجه سند استاندارد نشدم اگه میشه لطفا واژه ی انگلیسیشو بذارین ممنون میشم

C++ یک سند استاندارد داره که استانداردهای زبان C++ رو مشخص می‌کنه. آخرین نسخه‌ی این استاندارد C++11 هست. پشتیبانی کامپایلرها از زبان C++ بر مبنای مقدار هماهنگی‌ای که با این سند دارند تعریف می‌شه. مثلاً کامپایلر g++ بیشتر از ۹۰ درصد هماهنگی با سند C++11 داره.
در مورد محدوده‌ی بزرگ‌تر می‌شه دو تا گزاره گفت

RANGE(long double) > RANGE(double)
RANGE(long double) >= RANGE(double)

در مورد long int و int گزاره‌ی استاندارد C++ (چه در C++03 و چه در C++11) به صورت زیر هست

SIZE(long int) >= SIZE(int)

یعنی کامپایلری که long int رو به اندازه‌ی int تعریف کنه از نظر استاندارد اشتباهی مرتکب نشده و هنوز منطبق با استاندارد خواهد بود.

برای اطلاع از استانداردهای زبان C++ و نسخه‌های آینده‌ی اون (C++14 و C++17) می‌تونین به این سایت سر بزنین

کمیته‌ی استانداردسازی C++