Арабские цифры к китайским цифрам
Характеристики китайских чисел:
Использование «ноль» в китайских числах должно соответствовать следующим трем правилам:
Некоторые инструкции по дизайну алгоритма:
Алгоритм преобразования в сечении:
Функция секции Tochinese (section) {var Strins = '', chnstr = ''; var Unitpos = 0; var Zero = true; while (раздел> 0) {var v = section % 10; if (v === 0) {if (! Zero) {Zero = true; chnstr = chnnumchar [v] + chnstr; }} else {Zero = false; Strins = chnnumchar [v]; Stners += Chnunitchar [UnitPos]; chnstr = strins + chnstr; } UnitPos ++; section = math.floor (раздел / 10); } return chnstr;}Основная функция алгоритма преобразования:
Функция numbertochinese (num) {var unitpos = 0; var strins = '', chnstr = ''; var edzero = false; if (num === 0) {return chnnumchar [0]; } while (num> 0) {var section = num % 10000; if (edzero) {chnstr = chnnumchar [0] + chnstr; } strins = sectiontochinese (section); Стринс += (раздел! == 0)? Chnunitsection [UnitPos]: Chnunitsection [0]; chnstr = strins + chnstr; gendero = (раздел <1000) && (раздел> 0); num = math.floor (num / 10000); UNITPOS ++; } return chnstr;}Китайские цифры для арабских чисел
Идея дизайна:
Преобразовать китайские числа в арабские числа со следующими объектами:
var chnnumchar = {Zero: 0, один: 1, два: 2, три: 3, четыре: 4, пять: 5, шесть: 6, семь: 7, восемь: 8, девять: 9};Веса китайского веса преобразуется в 10 цифр, а веса реализуется с использованием следующих объектов:
var chnnamevalue = {ten: {value: 10, secunit: false}, сотни: {value: 100, secunit: false}, тысячи: {значение: 1000, secunit: false}, tens: {value: 10000, secUnit: true}, tens: {value: 10000, secUnit: true}, tens: 1000000: 1000000. Secunit: true}}Алгоритм преобразования выглядит следующим образом:
функция Chinesetonumber (chnstr) {var rtn = 0; var section = 0; var number = 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]]. secunit = chnnamevalue [str [i]]. secunit; if (secunit) {section = (раздел + номер) * единица; rtn += раздел; раздел = 0; } else {section += (номер * единица); } номер = 0; }} return rtn + section;}