Lakhs / Crores 시스템에서 숫자를 단어로 변환: 효율적인 접근 방식
숫자를 단어로 변환하는 것은 프로그래밍, 특히 프로그래밍에서 일반적인 작업입니다. 재무 또는 회계 애플리케이션. 기존의 많은 솔루션에는 여러 정규식과 루프가 포함된 복잡한 코드가 포함되어 있지만 이 기사에서는 남아시아 번호 매기기 시스템의 특정 요구 사항에 맞는 단순화된 접근 방식을 제시합니다.
이 시스템은 "lakhs" 및 "crores"의 개념을 활용합니다. "는 큰 수를 나타냅니다. 1 lakh는 100,000을 나타내고 1 crore는 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