ตัวเลขอาหรับเป็นตัวเลขจีน
ลักษณะของตัวเลขจีน:
การใช้ "ศูนย์" ในหมายเลขภาษาจีนจะต้องเป็นไปตามกฎสามข้อต่อไปนี้:
คำแนะนำบางประการสำหรับการออกแบบอัลกอริทึม:
อัลกอริทึมการแปลงในส่วน:
ฟังก์ชั่น SectionTochinese (ส่วน) {var strins = '', chnstr = ''; var unitpos = 0; var zero = true; ในขณะที่ (ส่วน> 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;}ฟังก์ชั่นหลักของอัลกอริทึมการแปลง:
ฟังก์ชั่น numberTochinese (num) {var unitpos = 0; var strins = '', chnstr = ''; var needzero = false; if (num === 0) {return chnnumchar [0]; } ในขณะที่ (num> 0) {ส่วน var = num % 10,000; if (needzero) {chnstr = chnnumchar [0] + chnstr; } strins = sectionTochinese (ส่วน); strins += (ส่วน! == 0)? chnunitsection [unitpos]: chnunitsection [0]; chnstr = strins + chnstr; needzero = (ส่วน <1000) && (ส่วน> 0); num = math.floor (num / 10,000); Unitpos ++; } return chnstr;}หมายเลขภาษาจีนเป็นหมายเลขอาหรับ
แนวคิดการออกแบบ:
แปลงตัวเลขภาษาจีนเป็นตัวเลขภาษาอาหรับด้วยวัตถุต่อไปนี้:
var chnnumchar = {zero: 0, one: 1, สอง: 2, สาม: 3, สี่: 4, ห้า: 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}, tens: {มูลค่า: 10000, Secunit:อัลกอริทึมการแปลงมีดังนี้:
ฟังก์ชั่น chinesetonumber (chnstr) {var rtn = 0; ส่วน var = 0; หมายเลข var = 0; var secunit = false; var str = chnstr.split (''); สำหรับ (var i = 0; i <str.length; i ++) {var num = chnnumchar [str [i]]; if (typeof num! == 'undefined') {number = num; if (i === str.length - 1) {ส่วน += number; }} else {var unit = chnnamevalue [str [i]]. ค่า; secunit = chnnamevalue [str [i]]. secunit; if (secunit) {section = (ส่วน + หมายเลข) * หน่วย; rtn += ส่วน; ส่วน = 0; } else {ส่วน += (หมายเลข * หน่วย); } number = 0; }} ส่งคืนส่วน rtn +;}