Numerales árabes a números chinos
Características de los números chinos:
El uso de "cero" en los números chinos debe cumplir con las siguientes tres reglas:
Algunas instrucciones para el diseño de algoritmo:
Algoritmo de conversión en la sección:
función sectionToChinese (sección) {var estrins = '', chnstr = ''; var unitpos = 0; var cero = true; while (sección> 0) {var v = sección % 10; if (v === 0) {if (! cero) {cero = true; chnstr = chnnumchar [v] + chnstr; }} else {cero = false; Strins = chnnumchar [v]; Strins += Chnunitchar [unitPos]; chnstr = strins + chnstr; } unitPos ++; sección = Math.floor (sección / 10); } return chnstr;}La función principal del algoritmo de conversión:
función numberToChinese (num) {var unitPos = 0; var strins = '', chnstr = ''; var necesitZero = false; if (num === 0) {return chnnumchar [0]; } while (num> 0) {var section = num % 10000; if (NeedZero) {chnstr = chnnumchar [0] + chnstr; } Strins = sectionToChinese (sección); Strins += (Sección! == 0)? chnunitsection [unitPOS]: chnunitsection [0]; chnstr = strins + chnstr; NeedZero = (sección <1000) && (sección> 0); num = Math.floor (num / 10000); UnitPos ++; } return chnstr;}Números chinos a los números árabes
Idea de diseño:
Convierta los números chinos en números árabes con los siguientes objetos:
var chnnumchar = {cero: 0, uno: 1, dos: 2, tres: 3, cuatro: 4, cinco: 5, seis: 6, siete: 7, ocho: 8, nueve: 9};La posición de peso china convertida en 10 dígitos y la marca de peso se implementan utilizando los siguientes objetos:
var chnnameValue = {ten: {valor: 10, secunit: false}, cientos: {valor: 100, secunit: false}, miles: {valor: 1000, secunit: false}, tens: {valor: 10000, secunit: true}, tens: {valor: 10000, secunit: verdad SECUNIT: verdadero}}El algoritmo de conversión es el siguiente:
función chinesetonumber (chnstr) {var rtn = 0; sección var = 0; número var = 0; var secunit = false; var str = chnstr.split (''); for (var i = 0; i <str.length; i ++) {var num = chnnumchar [str [i]]; if (typeof num! == 'undefined') {number = num; if (i === str.length - 1) {section += number; }} else {var unit = chnnameValue [str [i]]. valor; SECUNIT = chnnameValue [str [i]]. SECUNIT; if (secunit) {section = (sección + número) * unidad; rtn += sección; sección = 0; } else {section += (número * unidad); } número = 0; }} return rtn + sección;}