Zahlen in Wörter im Lakhs/Crores-System umwandeln: Ein effizienter Ansatz
Das Umwandeln von Zahlen in Wörter ist eine häufige Aufgabe in der Programmierung, insbesondere in Finanz- oder Buchhaltungsanwendungen. Während viele bestehende Lösungen komplexen Code mit mehreren regulären Ausdrücken und Schleifen beinhalten, stellt dieser Artikel einen vereinfachten Ansatz vor, der auf die spezifischen Anforderungen des südasiatischen Zahlensystems zugeschnitten ist.
Dieses System nutzt die Konzepte „lakhs“ und „crores“. „um große Zahlen darzustellen. Ein Lakh steht für 100.000, während ein Crore für 10.000.000 steht. Im Gegensatz zum westlichen Nummerierungssystem, bei dem Kommas als Trennzeichen verwendet werden, verwendet das südasiatische System Leerzeichen.
Um diese Transformation effizient zu erreichen, verwendet das folgende Codefragment einen einzigen regulären Ausdruck und macht Schleifen überflüssig:
<code class="javascript">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: </code>
document.getElementById('number').onkeyup = function () {
document.getElementById('words').innerHTML = inWords(document.getElementById('number').value);
};
Das obige ist der detaillierte Inhalt vonWie kann ich Zahlen im Lakhs/Crores-System effizient in Wörter umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!