الدالة round()‎ في PHP

من موسوعة حسوب
< PHP
مراجعة 03:34، 4 أبريل 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (استبدال النص - 'PHP/Types/string' ب'PHP/string')
اذهب إلى التنقل اذهب إلى البحث

(PHP 4, PHP 5, PHP 7)

تقرِّب الدالة round()‎ العدد العشري الممرَّر إليها.

الوصف

float round ( float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP ]] )

تعيد هذه الدالة القيمة المقرَّبة للمعامل value بحسب الدقَّة المحدَّدة في المعامل precision (عدد الأرقام بعد الفاصلة). يمكن أن تكون قيمة المعامل precision صفرًا وهي القيمة الافتراضيَّة أو قيمة سالبة.

ملاحظة: لا يمكن أن تتعامل PHP مع سلاسل نصيَّة مثل "12,300.2" وتقريبها بطريقة صحيحة. راجع قسم التحويل من السلاسل النصيَّة.

المعاملات

val

القيمة العدديَّة المراد تقريبها.

precision

عدد الأرقام بعد الفاصلة المراد تقريب المعامل val إليها.

mode

استعمل أحد الثوابت الموضَّحة في الجدول التالي التي تحدِّد طريقة تقريب المعامل val.

الثابت الوصف
PHP_ROUND_HALF_UP يُقرَّب المعامل val إلى أبعد عدد عن الصفر بحسب الدقة المحدَّدة في المعامل precision عندما تساوي قيمة الرقم المقرَّب 5 أو تزيد. يُقرَّب العدد 1.5 مثلًا إلى 2 والعدد 1.5- إلى 2-.
PHP_ROUND_HALF_DOWN يُقرَّب المعامل val إلى أقرب عدد للصفر بحسب الدقة المحدَّدة في المعامل precision عندما تساوي قيمة الرقم المقرَّب 5 أو أكثر. يُقرَّب العدد 1.5 مثلًا إلى 1 والعدد 1.5- إلى 1-.
PHP_ROUND_HALF_EVEN يُقرَّب المعامل val إلى أقرب قيمة زوجيَّة بحسب الدقة المحدَّدة في المعامل precision.
PHP_ROUND_HALF_ODD يُقرَّب المعامل val إلى أقرب قيمة فرديَّة بحسب الدقة المحدَّدة في المعامل precision.

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

تُعاد القيمة المُقرَّبة للمعامل val.

أمثلة

المثال 1: استعمال الدالة round()‎

<?php
echo round(3.4);         // 3
echo round(3.5);         // 4
echo round(3.6);         // 4
echo round(3.6, 0);      // 4
echo round(1.95583, 2);  // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2);    // 5.05
echo round(5.055, 2);    // 5.06
?>

المثال 2: استعمال المعامل mode

<?php
echo round(9.5, 0, PHP_ROUND_HALF_UP);   // 10
echo round(9.5, 0, PHP_ROUND_HALF_DOWN); // 9
echo round(9.5, 0, PHP_ROUND_HALF_EVEN); // 10
echo round(9.5, 0, PHP_ROUND_HALF_ODD);  // 9

echo round(8.5, 0, PHP_ROUND_HALF_UP);   // 9
echo round(8.5, 0, PHP_ROUND_HALF_DOWN); // 8
echo round(8.5, 0, PHP_ROUND_HALF_EVEN); // 8
echo round(8.5, 0, PHP_ROUND_HALF_ODD);  // 9
?>

المثال 3: استعمال المعامل mode مع المعامل precision

<?php
/* mode = PHP_ROUND_HALF_UP, precision = 1 */
echo round( 1.55, 1, PHP_ROUND_HALF_UP);   //  1.6
echo round( 1.54, 1, PHP_ROUND_HALF_UP);   //  1.5
echo round(-1.55, 1, PHP_ROUND_HALF_UP);   // -1.6
echo round(-1.54, 1, PHP_ROUND_HALF_UP);   // -1.5

/* mode = PHP_ROUND_HALF_DOWN, precision = 1 */
echo round( 1.55, 1, PHP_ROUND_HALF_DOWN); //  1.5
echo round( 1.54, 1, PHP_ROUND_HALF_DOWN); //  1.5
echo round(-1.55, 1, PHP_ROUND_HALF_DOWN); // -1.5
echo round(-1.54, 1, PHP_ROUND_HALF_DOWN); // -1.5

/* mode = PHP_ROUND_HALF_EVEN , precision = 1 */
echo round( 1.55, 1, PHP_ROUND_HALF_EVEN); //  1.6
echo round( 1.54, 1, PHP_ROUND_HALF_EVEN); //  1.5
echo round(-1.55, 1, PHP_ROUND_HALF_EVEN); // -1.6
echo round(-1.54, 1, PHP_ROUND_HALF_EVEN); // -1.5

/* mode = PHP_ROUND_HALF_ODD, precision = 1 */
echo round( 1.55, 1, PHP_ROUND_HALF_ODD);  //  1.5
echo round( 1.54, 1, PHP_ROUND_HALF_ODD);  //  1.5
echo round(-1.55, 1, PHP_ROUND_HALF_ODD);  // -1.5
echo round(-1.54, 1, PHP_ROUND_HALF_ODD);  // -1.5
?>

سجل التغييرات

الإصدار الوصف
5.3.0 إضافة المعامل mode مع ثوابته.
5.2.7 تغيير طريقة عمل الدالة لتتلائم مع معيار C99.

انظر أيضًا

  • الدالة ceil()‎: تُقرِّب العدد العشري إلى أكبر عدد صحيح.
  • الدالة floor()‎: تُقرِّب العدد العشري إلى أصغر عدد صحيح.
  • الدالة number_format()‎: تُنسِّق الفاصلة العشرية وفاصلة الآلاف للعدد العشري.

مصادر