將十億盧比系統中的數字轉換為單字:一種有效的方法
將數字轉換為單字是程式設計的一項常見任務,特別是在程式設計中財務或會計應用程式。雖然許多現有解決方案涉及具有多個正規表示式和循環的複雜程式碼,但本文提出了一種針對南亞編號系統的特定要求量身定制的簡化方法。
此系統利用「十萬」和「千萬」的概念」 來表示大數。十萬代表十萬,一千萬代表一千萬。與使用逗號作為分隔符號的西方編號系統不同,南亞系統使用空格。 , '一', '二', '三', '四', '五', '六', “七”、“八”、“九”、“十”、“十一”、“十二” 、「十三」、「十四」、「十五」、「十六」、「十七」、「十八」、「十九」 ']; const b = ['', '', '二十', '三十', '四十', '五十', '六十', '七十', '八十', '九十'] ; 函數 inWords (num) { if ((num = num.toString()).length > 9) return '溢出'; n = ('000000000' num).substr(-9).match(/^(\d{2})(\d{2})(\d{2})(\d{1})(\d {2})$/); 如果(!n)返回; 讓str = ''; str = (n[1] != 0) ? (a[Number(n[1])] || b[n[1][0]] ' ' a[n[1][1]]) '千萬' : ''; str = (n[2] != 0) ? (a[Number(n[2])] || b[n[2][0]] ' ' a[n[2][1]]) '十萬 ' : ''; str = (n[3] != 0) ? (a[Number(n[3])] || b[n[3][0]] ' ' a[n[3][1]]) '千 ' : ''; str = (n[4] != 0) ? (a[Number(n[4])] || b[n[4][0]] ' ' a[n[4][1]]) '百' : ''; str = (n[5] != 0) ? ((str != '') ? ' 和' : '') (a[Number(n[5])] || b[n[5][0]] ' ' a[n[5][1] ]) '僅有的' : ''; 返回字串; } ```` 此程式碼組合了預先定義的陣列“a”和“b”以形成各種數字表示。透過使用正規表示式,它捕獲數字的不同部分(例如,千萬、十萬、千、百和個)並產生適當的單字。重要的是,這種方法比之前提出的解決方案要簡潔得多。 為了示範程式碼的功能,可以使用 HTML/JavaScript 片段:
document.getElementById('number').onkeyup = function () {
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('words').innerHTML = inWords(document.getElementById('number').value);
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3