ما هي دقة المضاعفة الطويلة في C++؟
-
20-08-2019 - |
سؤال
هل يعرف أحد كيفية معرفة دقة long double
على منصة معينة؟يبدو أنني أفقد الدقة بعد 17 رقمًا عشريًا، وهو نفس ما يحدث عندما أستخدمه للتو double
.أتوقع الحصول على المزيد، منذ ذلك الحين double
يتم تمثيله بـ 8 بايت على النظام الأساسي الخاص بي، بينما long double
هو 12 بايت.
قبل أن تسأل، هذا لمشروع أويلر، لذا نعم أنا يفعل تحتاج إلى أكثر من 17 رقما.:)
يحرر: شكرا للردود السريعة.لقد أكدت للتو أنه لا يمكنني الحصول إلا على 18 رقمًا عشريًا باستخدام long double
على نظامي.
المحلول
يمكنك معرفة ذلك مع std::numeric_limits
:
#include <iostream> // std::cout
#include <limits> // std::numeric_limits
int main(){
std::cout << std::numeric_limits<long double>::digits10 << std::endl;
}
نصائح أخرى
يمكنك استخدام <كفلوت>.خاصة:
LDBL_DIG
لا تنتمي إلى StackOverflow