Heim > Web-Frontend > js-Tutorial > Wie kann ich Zahlen im Lakhs/Crores-System effizient in Wörter umwandeln?

Wie kann ich Zahlen im Lakhs/Crores-System effizient in Wörter umwandeln?

Susan Sarandon
Freigeben: 2024-11-07 19:22:02
Original
616 Leute haben es durchsucht

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

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>
Nach dem Login kopieren

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

document.getElementById('words').innerHTML = inWords(document.getElementById('number').value);
Nach dem Login kopieren

};


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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage