"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني تحويل الأرقام إلى كلمات بكفاءة في نظام Lakhs/Crores؟

كيف يمكنني تحويل الأرقام إلى كلمات بكفاءة في نظام Lakhs/Crores؟

تم النشر بتاريخ 2024-11-10
تصفح:389

How Can I Efficiently Convert Numbers to Words in the Lakhs/Crores System?

تحويل الأرقام إلى كلمات في نظام Lakhs / Crores: نهج فعال

يعد تحويل الأرقام إلى كلمات مهمة شائعة في البرمجة، خاصة في التطبيقات المالية أو المحاسبية. في حين أن العديد من الحلول الحالية تتضمن تعليمات برمجية معقدة مع العديد من التعبيرات والحلقات العادية، فإن هذه المقالة تقدم نهجًا مبسطًا مصممًا خصيصًا للمتطلبات المحددة لنظام الترقيم في جنوب آسيا.

يستخدم هذا النظام مفاهيم "lakhs" و"crores" " لتمثيل أعداد كبيرة. يمثل الألف 100.000، في حين يمثل الكرور 10.000.000. على عكس نظام الترقيم الغربي حيث يتم استخدام الفواصل كفواصل، يستخدم نظام جنوب آسيا المسافات.

ولتحقيق هذا التحويل بكفاءة، يستخدم مقتطف التعليمات البرمجية التالي تعبيرًا عاديًا واحدًا ويلغي الحاجة إلى الحلقات:

const a = ['', 'one ', 'two ', 'three ', 'four ', 'five ', 'six ', 'seven ', 'eight ', 'nine ', 'ten ', 'eleven ', 'twelve ', 'thirteen ', 'fourteen ', 'fifteen ', 'sixteen ', 'seventeen ', 'eighteen ', 'nineteen '];
const b = ['', '', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];

function inWords (num) {
  if ((num = num.toString()).length > 9) return 'overflow';
  n = ('000000000'   num).substr(-9).match(/^(\d{2})(\d{2})(\d{2})(\d{1})(\d{2})$/);
  if (!n) return;
  let str = '';
  str  = (n[1] != 0) ? (a[Number(n[1])] || b[n[1][0]]   ' '   a[n[1][1]])   'crore ' : '';
  str  = (n[2] != 0) ? (a[Number(n[2])] || b[n[2][0]]   ' '   a[n[2][1]])   'lakh ' : '';
  str  = (n[3] != 0) ? (a[Number(n[3])] || b[n[3][0]]   ' '   a[n[3][1]])   'thousand ' : '';
  str  = (n[4] != 0) ? (a[Number(n[4])] || b[n[4][0]]   ' '   a[n[4][1]])   'hundred ' : '';
  str  = (n[5] != 0) ? ((str != '') ? 'and ' : '')   (a[Number(n[5])] || b[n[5][0]]   ' '   a[n[5][1]])   'only ' : '';
  return str;
}
````

This code combines pre-defined arrays 'a' and 'b' to form various numerical representations. By utilizing a regular expression, it captures the different sections of the number (e.g., crores, lakhs, thousands, hundreds, and ones) and generates the appropriate words. Importantly, this approach is much more concise than the earlier solution presented.

To demonstrate the code's functionality, an HTML/JavaScript snippet can be used:

document.getElementById('number').onkeyup = function () {

document.getElementById('words').innerHTML = inWords(document.getElementById('number').value);

};


أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3