중국어 숫자에 대한 아랍어 숫자
중국 숫자의 특성 :
중국 번호로 "Zero"를 사용하면 다음 세 가지 규칙을 충족해야합니다.
알고리즘 설계에 대한 몇 가지 지침 :
내 변환 알고리즘 :
함수 sectiontochinese (섹션) {var strins = '', chnstr = ''; var unitpos = 0; var Zero = true; while (섹션> 0) {var v = 섹션 % 10; if (v === 0) {if (! Zero) {Zero = true; chnstr = chnnumchar [v] + chnstr; }} else {zero = false; strins = chnnumchar [v]; Strins += Chnunitchar [Unitpos]; chnstr = strins + chnstr; } unitpos ++; 섹션 = Math.floor (섹션 / 10); } return chnstr;}변환 알고리즘의 주요 기능 :
함수 NUGLOTOCHINESE (num) {var unitpos = 0; var strins = '', chnstr = ''; var needzero = false; if (num === 0) {return chnnumchar [0]; } while (num> 0) {var section = num % 100000; if (needzero) {chnstr = chnnumchar [0] + chnstr; } strins = sectiontochinese (섹션); strins += (섹션! == 0)? chnunitsection [unitpos] : chnunitsection [0]; chnstr = strins + chnstr; Needzero = (섹션 <1000) && (섹션> 0); num = math.floor (num / 10000); Unitpos ++; } return chnstr;}아랍어 숫자에 대한 중국인 숫자
디자인 아이디어 :
다음 개체와 함께 중국 번호를 아랍어 번호로 변환하십시오.
var chnnumchar = {zero : 0, 1 : 1, 1, 2 : 2, 3 : 3, 4 : 4, 5 : 5, 7 : 7, 8 : 8, 9 : 9};중국 중량 위치는 10 자리로 변환되고 중량 표시는 다음 객체를 사용하여 구현됩니다.
var chnnamevalue = {10 : {value : 10, secunit : false}, 수백 : {value : 100, secunit : false}, 수천 : {value : 1000, secunit : false}, tens : {value : {value : 10000, secunit : true}, value : 10000, secunit : true}, tens : {value : 100000000, Secunit : True}}변환 알고리즘은 다음과 같습니다.
함수 chineseTonumber (chnstr) {var rtn = 0; var 섹션 = 0; var 번호 = 0; var secunit = false; var str = chnstr.split ( ''); for (var i = 0; i <str.length; i ++) {var num = chnnumchar [str [i]]; if (num! == 'undefined') {number = num; if (i === str.length -1) {섹션 += 숫자; }} else {var init = chnnameValue [str [i]]. 값; secunit = chnnamevalue [str [i]]. secunit; if (secunit) {section = (section + number) * 단위; RTN += 섹션; 섹션 = 0; } else {섹션 += (번호 * 단위); } 번호 = 0; }} return rtn + 섹션;}