الأرقام العربية للأرقام الصينية
خصائص الأرقام الصينية:
يجب أن يفي استخدام "صفر" بالأرقام الصينية بالقواعد الثلاثة التالية:
بعض التعليمات لتصميم الخوارزمية:
خوارزمية التحويل في القسم:
وظيفة section tochinese (القسم) {var strins = '' ، chnstr = '' '؛ var unitpos = 0 ؛ var Zero = true ؛ بينما (القسم> 0) {var v = section ٪ 10 ؛ if (v === 0) {if (! Zero) {Zero = true ؛ chnstr = chnnumchar [v] + chnstr ؛ }} آخر {Zero = false ؛ strins = chnnumchar [v] ؛ strins += chnunitchar [unitpos] ؛ chnstr = strins + chnstr ؛ } unitpos ++ ؛ القسم = Math.floor (القسم / 10) ؛ } إرجاع chnstr ؛}الوظيفة الرئيسية لخوارزمية التحويل:
رقم الوظيفة tochinese (num) {var unitpos = 0 ؛ var strins = '' ، chnstr = '' ؛ var needzero = false ؛ if (num === 0) {return Chnnnumchar [0] ؛ } بينما (num> 0) {var section = num ٪ 10000 ؛ 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 ++ ؛ } إرجاع chnstr ؛}الأرقام الصينية للأرقام العربية
فكرة التصميم:
تحويل الأرقام الصينية إلى أرقام عربية مع الكائنات التالية:
var chnnnumchar = {Zero: 0 ، واحد: 1 ، اثنان: 2 ، ثلاثة: 3 ، أربعة: 4 ، 5: 5 ، ستة: 6 ، سبعة: 7 ، ثمانية: 8 ، تسعة: 9} ؛يتم تحويل موضع الوزن الصيني إلى 10 أرقام ويتم تنفيذ علامة الوزن باستخدام الكائنات التالية:
var chnnamevalue = {ten: {value: 10 ، secunit: false} ، المئات: {value: 100 ، secunit: false} ، الآلاف: {value: 1000 ، secunit: false} ، tens: {value: 10000 ، secunit: true} Secunit: True}}خوارزمية التحويل هي كما يلي:
دالة chinesetonumber (chnstr) {var rtn = 0 ؛ قسم VAR = 0 ؛ var number = 0 ؛ var secunit = false ؛ var str = chnstr.split ('') ؛ لـ (var i = 0 ؛ i <str.length ؛ i ++) {var num = Chnnnumchar [str [i]] ؛ if (typeof num! == 'undefined') {number = num ؛ if (i === str.length - 1) {section += number ؛ }} آخر {var unit = chnnamevalue [str [i]]. value ؛ secunit = chnnamevalue [str [i]]. secunit ؛ if (secunit) {section = (القسم + الرقم) * الوحدة ؛ RTN += قسم ؛ القسم = 0 ؛ } آخر {القسم += (الرقم * الوحدة) ؛ } الرقم = 0 ؛ }} return rtn + section ؛}