0Pricing
Swift Academy · درس

الأعداد العشرية: Double مقابل Float

اختر بين Double و Float وتعامل مع الدقة.

الأعداد العشرية: Double مقابل Float درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.

أنواع الفاصلة العائمة

تحتوي Swift على نوعين رئيسيين من أنواع الفاصلة العائمة: Double بحجم 64 بت وFloat بحجم 32 بت. وهما يمثلان أعدادًا تحتوي على أجزاء كسرية.

let d: Double = 3.14159
let f: Float = 3.14159
print(d, f)

Double هو النوع الافتراضي

عندما تكتب ثابتًا عشريًا من دون تحديد نوع، تستنتج Swift النوع Double. ويوفر Double دقة أكبر من Float.

let value = 2.5
print(type(of: value))

اختلاف الدقة

يخزن Double نحو 15 رقمًا عشريًا مهمًا، بينما يخزن Float نحو 6 أو 7 أرقام فقط. وقد يُطبع الثابت نفسه بشكل مختلف.

let d: Double = 0.1234567890123456
let f: Float = 0.1234567890123456
print(d)
print(f)

الثابت pi

يوفر كلا النوعين .pi. وتكون قيمة Double.pi أدق من قيمة Float.pi.

print(Double.pi)
print(Float.pi)

حسابات الفاصلة العائمة

يمكنك جمع أعداد الفاصلة العائمة وطرحها وضربها وقسمتها. وتحافظ القسمة على الناتج الكسري.

let radius = 2.0
let area = Double.pi * radius * radius
print("Area:", area)

أساليب التقريب

توفر قيم الفاصلة العائمة الأسلوب .rounded()، إلى جانب صيغ مثل .rounded(.down) و.rounded(.up).

let x = 2.7
print(x.rounded())
print(x.rounded(.down))
print(x.rounded(.up))

التقريب إلى الأسفل وإلى الأعلى والاقتطاع

تتيح قواعد التقريب التقريبَ نحو ما لا نهاية السالبة، أو نحو ما لا نهاية الموجبة، أو الاقتطاعَ نحو الصفر.

let n = -2.3
print(n.rounded(.down))
print(n.rounded(.up))
print(n.rounded(.towardZero))

عدم دقة الفاصلة العائمة

بسبب تمثيل الأعداد بالنظام الثنائي، يتعذر تخزين بعض الأعداد العشرية بدقة تامة. ومن المعروف أن 0.1 + 0.2 لا يساوي تمامًا 0.3.

let sum = 0.1 + 0.2
print(sum)
print(sum == 0.3)

مقارنة قيم Float بأمان

بدلًا من اختبار التساوي التام، قارن أعداد الفاصلة العائمة ضمن هامش سماح صغير (إبسيلون).

let sum = 0.1 + 0.2
let close = abs(sum - 0.3) < 0.0001
print("Close enough:", close)

قيم Float الخاصة

يمكن لأنواع الفاصلة العائمة تمثيل infinity وnan (ليس رقمًا). استخدم .isInfinite و.isNaN للتحقق منهما.

let inf = Double.infinity
let notNum = Double.nan
print(inf.isInfinite)
print(notNum.isNaN)

اختيار Double أو Float

يُفضَّل استخدام Double لتحقيق الدقة في العمليات الحسابية العامة. استخدم Float فقط عندما تتطلب الذاكرة أو أجهزة محددة، مثل الرسومات، قيمة بحجم 32 بت.

let preciseAvg: Double = (10.0 + 3.0) / 4.0
print(preciseAvg)

اختبار سريع

تذكّر النوع الذي يستنتجه Swift للقيم الحرفية العشرية.

مراجعة: Double مقابل Float

لقد تعلمت أن Double (بحجم 64 بت وهو النوع الافتراضي) أدق من Float (بحجم 32 بت)، وأن كليهما يوفّر .pi وطرائق التقريب، وأن حسابات الفاصلة العائمة غير دقيقة تمامًا؛ لذلك ينبغي المقارنة باستخدام هامش سماح بدلًا من ==.

let a = 0.1 + 0.2
print("Raw:", a)
print("Rounded:", a.rounded())
print("Within tolerance of 0.3:", abs(a - 0.3) < 1e-9)

الأسئلة الشائعة

هل درس «الأعداد العشرية: Double مقابل Float» مجاني؟

نعم — نص درس «الأعداد العشرية: Double مقابل Float» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.

ماذا ستتعلم في «الأعداد العشرية: Double مقابل Float»؟

اختر بين Double و Float وتعامل مع الدقة. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «الأعداد العشرية: Double مقابل Float»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أنواع الأعداد الصحيحة ونطاقاتها
  2. الأعداد العشرية: Double مقابل Float
  3. التحويلات العددية الصريحة
  4. الثوابت العددية والشرطات السفلية
← العودة إلى Swift Academy