كيف تقوم بتنسيق الأرقام بالتدوين العلمي؟
تعلم كيفية عرض الأرقام الكبيرة جدًا والصغيرة جدًا في جافاسكريبت
مقدمة
التدوين العلمي يعبر عن الأرقام كمعامل مضروب في أس للعدد 10. على سبيل المثال، 123,000,000 تصبح 1.23 × 10^8، و 0.000000456 تصبح 4.56 × 10^-7. هذا التنسيق يجعل الأرقام الكبيرة جداً والصغيرة جداً أسهل للقراءة والمقارنة.
تطبيقات الويب التي تعرض بيانات علمية، أو معلومات مالية، أو قياسات تقنية غالباً ما تحتاج إلى تنسيق الأرقام بهذه الطريقة. توفر جافا سكريبت دعماً مدمجاً للتدوين العلمي من خلال واجهة برمجة التطبيقات Intl.NumberFormat، والتي تتعامل مع كل من التنسيق والتوطين.
توضح هذه المقالة كيفية تنسيق الأرقام بالتدوين العلمي، والتحكم في الدقة، وفهم الاختلافات الخاصة باللغات المحلية، والاختيار بين التدوين العلمي والهندسي.
تنسيق الأرقام بالتدوين العلمي
يقبل مُنشئ Intl.NumberFormat خيار notation الذي يتحكم في كيفية عرض الأرقام. ضبط notation على "scientific" ينسق الأرقام بالتدوين العلمي.
const formatter = new Intl.NumberFormat('en-US', {
notation: 'scientific'
});
console.log(formatter.format(987654321));
// Output: 9.877E8
الناتج 9.877E8 يمثل 9.877 × 10^8. الحرف E يفصل المعامل عن الأس.
تنسيق الأرقام الكبيرة جداً
التدوين العلمي يبسط عرض الأرقام الكبيرة جداً من خلال التعبير عنها كمعامل وأس.
const formatter = new Intl.NumberFormat('en-US', {
notation: 'scientific'
});
console.log(formatter.format(6.02214076e23));
// Output: 6.022E23
console.log(formatter.format(299792458));
// Output: 2.998E8
console.log(formatter.format(7800000000));
// Output: 7.8E9
الرقم 6.02214076e23 (ثابت أفوجادرو) يتم تنسيقه كـ 6.022E23، مما يجعله أسهل للقراءة من 602,214,076,000,000,000,000,000.
تنسيق الأرقام الصغيرة جداً
التدوين العلمي يعمل أيضاً مع الأرقام الصغيرة جداً، باستخدام الأسس السالبة للتعبير عن القيم الأقل من 1.
const formatter = new Intl.NumberFormat('en-US', {
notation: 'scientific'
});
console.log(formatter.format(0.000000001));
// Output: 1E-9
console.log(formatter.format(0.00000000000000000016));
// Output: 1.6E-19
console.log(formatter.format(0.0000000456));
// Output: 4.56E-8
الرقم 0.00000000000000000016 (الشحنة التقريبية للإلكترون بالكولوم) يتم تنسيقه كـ 1.6E-19، مما يجنب الحاجة إلى عد الأصفار.
تنسيق التدوين العلمي يختلف حسب اللغة المحلية
تستخدم اللغات المحلية المختلفة فواصل عشرية مختلفة في التدوين العلمي. بينما يبقى فاصل الأس E في معظم اللغات المحلية ذات الأساس اللاتيني، فإن الفاصل العشري في المعامل يتبع اصطلاحات اللغة المحلية.
const numberToFormat = 987654321;
// الإنجليزية الأمريكية تستخدم نقطة كفاصل عشري
const usFormatter = new Intl.NumberFormat('en-US', {
notation: 'scientific'
});
console.log(usFormatter.format(numberToFormat));
// الناتج: 9.877E8
// البرتغالية تستخدم فاصلة كفاصل عشري
const ptFormatter = new Intl.NumberFormat('pt-PT', {
notation: 'scientific'
});
console.log(ptFormatter.format(numberToFormat));
// الناتج: 9,877E8
// الألمانية تستخدم أيضًا فاصلة كفاصل عشري
const deFormatter = new Intl.NumberFormat('de-DE', {
notation: 'scientific'
});
console.log(deFormatter.format(numberToFormat));
// الناتج: 9,877E8
اللغة الإنجليزية الأمريكية تنتج 9.877E8 بنقطة، بينما اللغات البرتغالية والألمانية تنتج 9,877E8 بفاصلة.
التحكم في الدقة في التدوين العلمي
تتحكم خيارات minimumSignificantDigits وmaximumSignificantDigits في عدد الأرقام التي تظهر في الناتج المنسق. تشمل الأرقام المعنوية جميع الأرقام في المعامل، من أول رقم غير صفري إلى آخر رقم.
const formatter = new Intl.NumberFormat('en-US', {
notation: 'scientific',
minimumSignificantDigits: 3,
maximumSignificantDigits: 3
});
console.log(formatter.format(123456789));
// الناتج: 1.23E8
console.log(formatter.format(0.00045678));
// الناتج: 4.57E-4
ضبط كلا الخيارين على 3 يحد الناتج إلى ثلاثة أرقام معنوية بالضبط. بدون هذه الخيارات، يتضمن المنسق المزيد من الأرقام من العدد الأصلي.
يمكنك أيضًا تعيين قيم مختلفة للحد الأدنى والحد الأقصى للسماح بدقة متغيرة.
const formatter = new Intl.NumberFormat('en-US', {
notation: 'scientific',
minimumSignificantDigits: 2,
maximumSignificantDigits: 5
});
console.log(formatter.format(123456789));
// الناتج: 1.2346E8
console.log(formatter.format(100000000));
// الناتج: 1.0E8
يسمح هذا التكوين بما بين 2 و5 أرقام معنوية، اعتمادًا على الرقم المدخل.
تنسيق الأرقام بالتدوين الهندسي
التدوين الهندسي هو نوع من التدوين العلمي حيث يكون الأس دائمًا من مضاعفات الرقم 3. وهذا يتوافق مع بادئات النظام المتري مثل كيلو (10^3)، وميجا (10^6)، وجيجا (10^9).
const formatter = new Intl.NumberFormat('en-US', {
notation: 'engineering'
});
console.log(formatter.format(987654321));
// Output: 987.654E6
console.log(formatter.format(0.000000456));
// Output: 456E-9
يتم تنسيق الرقم 987,654,321 كـ 987.654E6 في التدوين الهندسي، مقارنة بـ 9.877E8 في التدوين العلمي. الأس 6 هو من مضاعفات الرقم 3.
الاختلافات بين التدوين العلمي والتدوين الهندسي
الاختلاف الرئيسي بين التدوين العلمي والتدوين الهندسي هو كيفية اختيار الأس. يستخدم التدوين العلمي أي أس صحيح، بينما يقتصر التدوين الهندسي على مضاعفات الرقم 3.
const scientificFormatter = new Intl.NumberFormat('en-US', {
notation: 'scientific'
});
const engineeringFormatter = new Intl.NumberFormat('en-US', {
notation: 'engineering'
});
const testNumbers = [105900, 1234567, 0.00045];
testNumbers.forEach(num => {
console.log(`Number: ${num}`);
console.log(`Scientific: ${scientificFormatter.format(num)}`);
console.log(`Engineering: ${engineeringFormatter.format(num)}`);
console.log('---');
});
// Output:
// Number: 105900
// Scientific: 1.059E5
// Engineering: 105.9E3
// ---
// Number: 1234567
// Scientific: 1.235E6
// Engineering: 1.235E6
// ---
// Number: 0.00045
// Scientific: 4.5E-4
// Engineering: 450E-6
// ---
بالنسبة للرقم 105,900، ينتج التدوين العلمي 1.059E5 بينما ينتج التدوين الهندسي 105.9E3. عندما يستخدم التدوين العلمي بالفعل مضاعفات الرقم 3 (كما هو الحال مع 1,234,567 الذي ينتج 1.235E6)، فإن كلا التدوينين ينتجان نفس النتيجة.
حالات استخدام التدوين العلمي والتدوين الهندسي
يعمل التدوين العلمي بشكل جيد للتطبيقات التي تعرض البيانات حيث تكون قابلية القراءة والاتساق أكثر أهمية من التوافق مع بادئات النظام المتري.
استخدم التدوين العلمي لـ:
- الآلات الحاسبة العلمية وأدوات الحساب
- تطبيقات علم الفلك (المسافات، الكتل، السطوع)
- تطبيقات الكيمياء (الكتل الجزيئية، التركيزات)
- محاكاة الفيزياء (كتل الجسيمات، القيم الكهرومغناطيسية)
يعمل التدوين الهندسي بشكل جيد للتطبيقات التي يفكر فيها المستخدمون بمصطلحات بادئات النظام المتري أو يحتاجون إلى توصيل القيم شفهيًا.
استخدم التدوين الهندسي لـ:
- تطبيقات الإلكترونيات (المقاومات بالكيلو أوم، السعات بالبيكوفاراد)
- أدوات الهندسة الكهربائية (الجهد، التيارات، القدرة)
- أنظمة الاتصالات (الترددات بالميجاهرتز، معدلات البيانات بالجيجابت)
- الهندسة الميكانيكية (القوى بالكيلونيوتن، عزم الدوران بالنيوتن متر)
يعتمد الاختيار على المستخدمين والمجال. يوفر التدوين العلمي تنسيقًا متسقًا عبر جميع الأرقام، بينما يتوافق التدوين الهندسي مع الطريقة التي يتواصل بها المهندسون في القياسات.