خاصية "Output Numbers" في جافا تشير إلى كيفية عرض الأرقام بتنسيقات مختلفة باستخدام طرق الإخراج المتوفرة في اللغة. جافا توفر آليات متنوعة للتحكم في شكل الأرقام عند طباعتها أو تحويلها إلى نصوص. سأشرح لك أهم هذه الآليات مع الأمثلة:

1. استخدام System.out.print() و System.out.println():

هذه هي أبسط طرق الإخراج في جافا. println() تطبع القيمة مع سطر جديد، بينما print() تطبع القيمة فقط.

  • مثال بسيط:
Java
int x = 10;
double pi = 3.14159;

System.out.println(x); // يطبع 10
System.out.println(pi); // يطبع 3.14159

2. تنسيق الأرقام باستخدام String.format():

تُستخدم هذه الطريقة لتحويل الأرقام إلى نصوص بتنسيق مُحدد. تستخدم مُحددات تنسيق (Format Specifiers) للتحكم في شكل الرقم.

  • أهم مُحددات التنسيق:

    • %d: عدد صحيح (integer).
    • %f: عدد عشري (floating-point).
    • %e أو %E: عدد عشري بالصيغة العلمية (scientific notation).
    • %g أو %G: يستخدم أقصر تمثيل بين %f و %e.
    • %x أو %X: عدد صحيح بالنظام الست عشري (hexadecimal).
    • %o: عدد صحيح بالنظام الثماني (octal).
  • أمثلة:

Java
int num = 123;
double price = 45.678;

String formattedNum = String.format("العدد: %d", num); // الناتج: العدد: 123
String formattedPrice = String.format("السعر: %.2f", price); // الناتج: السعر: 45.68 (تقريب لرقمين عشريين)
String scientificNotation = String.format("العدد بالصيغة العلمية: %e", 1234567.89); // الناتج: العدد بالصيغة العلمية: 1.234568e+06
  • التحكم في العرض:

    • يمكن تحديد عدد الخانات الكلية وعدد الخانات بعد العلامة العشرية باستخدام أرقام بين % والحرف المُحدد للتنسيق. مثال: %10.2f يعني عرض العدد العشري في 10 خانات مع رقمين بعد العلامة العشرية.
    • يمكن استخدام أعلام (flags) للتحكم في المحاذاة وإضافة علامات زائد أو فراغات. مثال: %+d لعرض علامة الزائد للأعداد الموجبة، %05d لإضافة أصفار على اليسار حتى يصبح العدد مكون من 5 خانات.

3. استخدام DecimalFormat:

هذه الطريقة توفر تحكمًا دقيقًا في تنسيق الأرقام، خاصةً للأرقام العشرية والعملات.

  • مثال:
Java
import java.text.DecimalFormat;

double value = 1234.567;

DecimalFormat df = new DecimalFormat("#,###.00"); // تنسيق مع فاصلة آلاف ورقمين عشريين
String formattedValue = df.format(value); // الناتج: 1,234.57

DecimalFormat currencyFormat = new DecimalFormat("$#,###.00"); // تنسيق عملة
String formattedCurrency = currencyFormat.format(value); // الناتج: $1,234.57

4. استخدام NumberFormat:

هذه فئة مجردة توفر تنسيقات للأرقام والعملات والنسب المئوية. يمكن استخدامها للحصول على تنسيقات مُعدة مسبقًا بناءً على الإعدادات المحلية.

  • مثال:
Java
import java.text.NumberFormat;
import java.util.Locale;

double number = 0.75;

NumberFormat percentFormat = NumberFormat.getPercentInstance(Locale.US);
String formattedPercent = percentFormat.format(number); // الناتج: 75%

باختصار، جافا توفر مجموعة واسعة من الأدوات لتنسيق الأرقام بشكل مناسب لاحتياجات التطبيق، سواء كنت تحتاج إلى تنسيق بسيط أو تحكم دقيق في شكل العرض. استخدام String.format() و DecimalFormat هما من أكثر الطرق شيوعًا وفعالية.