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

من موسوعة حسوب

(PHP 4, PHP 5, PHP 7)

تُنَسِق الدالة number_format()‎ الأعداد بالآلاف لعرضها.

الوصف

string number_format ( float $number [, int $decimals = 0 ] )

string number_format ( float $number , int $decimals = 0 , string $dec_point = "." , string $thousands_sep = "," )

تقبل الدالة number_format()‎ معاملًا واحدًا أو معاملين اثنين أو أربعة معاملات (لا تقبل الدالة number_format()‎ ثلاثة معاملات).

  • إذا مُرِّرَ إلى الدالة number_format()‎ معاملٌ واحد، فتُنَسِق الأعداد دون كسرها العُشري مع إضافة فاصلة (,) لكل مجموعة آلاف (أي فاصلة بين كل ثلاثة ارقام).
  • إذا مُرِّر إلى الدالة number_format()‎ معاملين اثنين، فتُنَسِق الأعداد مع الحفاظ على كسرها العُشري بإضافة نقطة (.) قبله، وستُضيف فاصلة (,) لكل  مجموعة آلاف (أي فاصلة بين كل ثلاثة ارقام).
  • إذا مُرِّرَ إلى الدالة number_format()‎ أربعة معاملات، فتُنَسِق الأعداد بعدد المعامل decimals من الكسور العُشرية مع إضافة المعامل dec_point (بدلًا من .) كفاصلٍ قبله. وستُضيف المعامل thousands_sep كفاصل لكل مجموعة آلاف (أي بدل الفاصلة ,).

المعاملات

number

الرقم المُراد تنسيقه.

decimals

يُحدد عدد االكسور العُشرية.

dec_point

يُحدد فاصل الكسور العشرية.

thousands_sep

يُحدد فاصل مجموعة الآلاف.

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

تُعيد الدالة number_format()‎ نسخة منسقة من المعامل number.

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

الإصدار الوصف
7.2.0 عُدِلت الدالة number_format()‎ حتى لا تُعيد القيمة 0-، قبل هذا كانت الدالة تُعيد القيمة 0- لأعداد مثل 0.01-.
5.4.0 دعمت الدالة number_format()‎ قيم المعاملات dec_point و thousands_sep المكونة من عدة بايتات. النسخ السابقة كانت تأخذ البايت الأول في الحسبان فقط لقيم المعاملات.

أمثلة

المثال 1: مثال بسيط عن الدالة number_format()‎

على سبيل المثال، يستعمل التنسيق الفرنسي رقمين للكسور العشرية و فاصلة (',') لفصل الكسر العشري عن العدد و مساحة فراغ (' ') لفصل مجموعة الآلاف. المثال التالي يُبين طرق عديدة لتنسيق الأعداد.

<?php

$number = 1234.56;

// التنسيق الإنكليزي (الافتراضي)

$english_format_number = number_format($number);

// 1,235

// التنسيق الفرنسي

$nombre_format_francais = number_format($number, 2, ',', ' ');

// 1 234,56

$number = 1234.5678;

// التنسيق الإنكليزي دون فاصلٍ للآلاف

$english_format_number = number_format($number, 2, '.', '');

// 1234.57

?>

انظر أيضًا

  • sprintf()‎: إعادة سلسلة نصية منسقة.
  • money_format()‎ : تَنسيق رقم للعرض كالعملات.
  • sscanf()‎: إدخال بيانات إلى النظام من سلسلة نصية حسب تنسيق معين.
  • printf()‎: عرض سلسلة نصية منسقة.

مصادر

  • صفحة الدالة number_format في توثيق PHP الرسمي.