العدد العشري هو عدد يحتوي على صفر أو أكثر من الأرقام بعد الفاصلة العشرية. من الأمثلة عليه -2.4 و0.1 و3.14 و16.984025 و1024.0.
يمكن لأنواع الأعداد العشرية المختلفة تخزين أعداد مختلفة من الأرقام بعد الفاصلة العشرية، ويُشار إلى ذلك باسم الدقة. وهذا يعني أن محاولة تخزين PI في single ستخزّن أول 6 إلى 9 أرقام فقط (مع تقريب الرقم الأخير).
تُقرأ الأعداد العشرية في Clojure على أنها Double؛ ومع اللاحقة M تُقرأ على أنها BigDecimal.
Double: 8 بايت (بدقة تبلغ نحو 15 إلى 17 رقمًا). هذا هو النوع الأكثر شيوعًا. يُكتب بالشكل 2.45.BigDecimal: قيمة صحيحة غير مقيسة بدقة تعسفية، ومقياس صحيح بطول 32 بت. يُكتب بالشكل 2.45M.في هذا التمرين ستعمل على حسابات التوفير. كل عام، يُحدَّث رصيد حساب التوفير الخاص بك بناءً على سعر الفائدة الخاص به. يعتمد سعر الفائدة الذي يمنحك إياه البنك على مقدار المال الموجود في حسابك (رصيده):
1000 دولار.1000 دولار أو يزيد عنها، ويقل عن 5000 دولار.5000 دولار أو يزيد عنها.كل عام، قبل تحديث رصيد حساب التوفير الخاص بك، تسمح لك الحكومة بالتبرع بنسبة من مالك للأعمال الخيرية، معفاة من الضرائب. ولأنك شخص طيب، إذا كان رصيدك موجبًا في نهاية العام، فإنك تتبرع بضعف هذا المبلغ للأعمال الخيرية، مقرَّبًا للأسفل إلى أقرب دولار كامل.
لديك ثلاث مهام، تتعامل كل منها مع رصيدك وسعر الفائدة الخاص به.
نفّذ الدالة interest-rate لحساب سعر الفائدة بناءً على الرصيد المحدد:
(interest-rate 200.75M)
;;=> 0.5
لاحظ أن القيمة المُرجَعة هي Double.
نفّذ الدالة annual-balance-update لحساب تحديث الرصيد السنوي، مع أخذ سعر الفائدة في الحسبان:
(annual-balance-update 200.75M)
;;=> 201.75375M
لاحظ أن القيمة المُرجَعة هي BigDecimal.
نفّذ الدالة amount-to-donate لحساب مقدار المال الذي ستتبرع به للأعمال الخيرية بناءً على الرصيد والنسبة المعفاة من الضرائب التي تسمح بها الحكومة:
(def balance 550.5M)
(def tax-free-percentage 2.5)
(amount-to-donate balance tax-free-percentage)
;;=> 27
لاحظ أن القيمة المُرجَعة هي int.
سجّل في Exercism لتتعلّم وتتقن Clojure عبر 12 مفهومًا105 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.