Arabische Ziffern für chinesische Ziffern
Merkmale chinesischer Zahlen:
Die Verwendung von "Zero" in chinesischen Zahlen muss die folgenden drei Regeln erfüllen:
Einige Anweisungen zum Algorithmus -Design:
Umwandlungsalgorithmus im Abschnitt:
FunktionsabschnittoTochinese (Abschnitt) {var Strins = '', CHNSTR = ''; var unitpos = 0; var null = true; while (Abschnitt> 0) {var v = Abschnitt % 10; if (v === 0) {if (! null) {Zero = true; chnstr = chnnumchar [v] + chnstr; }} else {Zero = false; Stücke = chnnumchar [v]; Stücke += Chnunitchar [UnitPos]; CHNSTR = STRINS + CHNSTR; } unitpos ++; Abschnitt = math.floor (Abschnitt / 10); } return chnstr;}Die Hauptfunktion des Konvertierungsalgorithmus:
FunktionsnummerTochinese (num) {var UnitPos = 0; var Strins = '', CHNSTR = ''; var Needzero = false; if (num === 0) {return chnnumchar [0]; } while (num> 0) {var section = num % 10000; if (Needzero) {chnstr = chnnumchar [0] + chnstr; } Strins = Abschnittochinese (Abschnitt); Stücke += (Abschnitt! == 0)? CHNUNITIKETIC [UNITPOS]: CHNUNITIKETIC [0]; CHNSTR = STRINS + CHNSTR; Needzero = (Abschnitt <1000) && (Abschnitt> 0); num = math.floor (Num / 10000); UNITPOS ++; } return chnstr;}Chinesische Zahlen zu arabischen Zahlen
Designidee:
Konvertieren Sie chinesische Zahlen in arabische Zahlen mit den folgenden Objekten:
var chnnumchar = {null: 0, eins: 1, zwei: 2, drei: 3, vier: 4, fünf: 5, sechs: 6, sieben: 7, acht: 8, neun: 9};Die chinesische Gewichtsposition wird in 10 Ziffern umgewandelt und die Gewichtsmarke werden unter Verwendung der folgenden Objekte implementiert:
var chnNameValue = { ten:{value:10, secUnit:false}, hundreds:{value:100, secUnit:false}, thousands:{value:1000, secUnit:false}, tens:{value:10000, secUnit:true}, tens:{value:10000, secUnit:true}, tens:{value:100000000, Secunit: true}}Der Konvertierungsalgorithmus lautet wie folgt:
Funktion Chinesetonumber (chnstr) {var rtn = 0; var Abschnitt = 0; var number = 0; var secunit = false; var str = chnstr.split (''); für (var i = 0; i <str.length; i ++) {var num = chnnumchar [st [i]]; if (typeof num! == 'undefined') {number = num; if (i === str.length - 1) {Abschnitt += Nummer; }} else {var Unit = chnnameValue [st [i]]. Wert; secUnit = chnnameValue [st [i]]. Secunit; if (secUnit) {Abschnitt = (Abschnitt + Nummer) * Einheit; RTN += Abschnitt; Abschnitt = 0; } else {Abschnitt += (Nummer * Einheit); } number = 0; }} Retn + Abschnitt zurückgeben;}