التابع Float.round‎ في روبي

من موسوعة حسوب
< Ruby‏ | Float
مراجعة 08:29، 24 نوفمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يقرِّب التابع round العدد الذي استُدعي معه إلى أقرب قيمة بدقة محدَّدة.

البنية العامة

round([ndigits] [, half: mode])  integer or float

المعاملات

ndigits‎

عدد يمثل دقة التقريب. عندما تكون الدقة المعطاة قيمة موجبة، يعاد عدد عشري، وإلا يُعاد عددٌ صحيحٌ. وأما عندما تكون الدقة سالبة، تكون القيمة المُعادة عدد صحيح متبوعًا بعدد أصفار مقداره ndigits.abs على الأقل.

half

إذا أعطي المعامل half الاختياري، فستُقرَّب الأرقام التي تقع في المنتصف بين قيمتين مقرَّبتين ممكنتين وفقًا للوضع mode المُحدَّد. الأوضاع التي يمكن استعمالها مع هذا المعامل هي:

  • ‎:up أو nil:: التقريب نحو النصف العلوي الأبعد عن الصفر (الوضع الافتراضي).
  • ‎:down: التقريب نحو النصف السفلي باتجاه الصفر.
  • ‎:even: التقريب نحو النصف الأقرب إلى عدد زوجي.

القيمة المعادة

يعاد عدد صحيح أو عشري يمثِّل ناتج تقريب العدد المعطى إلى أقرب قيمة بدقة ndigits للمنازل العشري. عندما تكون الدقة ndigits‎ المعطاة قيمة موجبة، يعاد عدد عشري، وإلا يُعاد عددٌ صحيحٌ. وأما عندما تكون الدقة سالبة، تكون القيمة المُعادة عدد صحيح متبوعًا بعدد أصفار مقداره ndigits.abs على الأقل.

أمثلة

مثال على استعمال التابع round:

1.4.round      #=> 1
1.5.round      #=> 2
1.6.round      #=> 2
(-1.5).round   #=> -2

1.234567.round(2)   #=> 1.23
1.234567.round(3)   #=> 1.235
1.234567.round(4)   #=> 1.2346
1.234567.round(5)   #=> 1.23457

34567.89.round(-5)  #=> 0
34567.89.round(-4)  #=> 30000
34567.89.round(-3)  #=> 35000
34567.89.round(-2)  #=> 34600
34567.89.round(-1)  #=> 34570
34567.89.round(0)   #=> 34568
34567.89.round(1)   #=> 34567.9
34567.89.round(2)   #=> 34567.89
34567.89.round(3)   #=> 34567.89

مثال على استعمال التابع round مع تمرير المعامل half إليه:

2.5.round(half: :up)      #=> 3
2.5.round(half: :down)    #=> 2
2.5.round(half: :even)    #=> 2
3.5.round(half: :up)      #=> 4
3.5.round(half: :down)    #=> 3
3.5.round(half: :even)    #=> 4
(-2.5).round(half: :up)   #=> -3
(-2.5).round(half: :down) #=> -2
(-2.5).round(half: :even) #=> -2

انظر أيضا

  • التابع ceil: يعيد أصغر عدد من الأعداد الأكبر من أو تساوي العدد العشري الذي استُدعي معه وبدقة محدَّدة.
  • التابع floor: يعيد أكبر عدد من الأعداد الأصغر من أو تساوي العدد العشري الذي استُدعي معه وبدقة محدَّدة.
  • التابع truncate: يعيد العدد العشري الذي استُدعي معه بعد اقتطاع المنازل العشرية منه بمقدار محدَّد.

مصادر