conv2num(str){ d := {"零":0,"一":1,"二":2,"两":2,"三":3,"四":4,"五":5,"六":6,"七":7,"八":8,"九":9,"十":10,"百":100,"千":1000,"万":10000,"亿":100000000} n = 0 a := StrSplit(str,"亿") if a[2] { b := StrSplit(a[2],"万") s1 := a[1],s2 := b[1], s3 := b[2] } else { a := StrSplit(str,"万") s1 := a[1],s2 := a[2], s3 := "" } l1 := InStr(str,"亿") ? d["亿"] : (InStr(str,"万") ? d["万"] : 1) l2 := InStr(a[2],"万") ? d["万"] : (a[2] ? 1 : 0) l3 := b[2] ? 1 : 0 if l1=1 { Loop { if !str break if RegExMatch(str,"^(一|二|两|三|四|五|六|七|八|九)(十|百|千|)(.*)",m) { t := d[m1] * (m2 ? d[m2] : 1) n += t, str := m3 } else if RegExMatch(str,"^十(一|二|两|三|四|五|六|七|八|九|)$",m) { t := 10 + (m1 ? d[m1] : 0) n += t, str := "" } else if RegExMatch(str,"^零(.*)",m) str := m1 } } else n := conv2num(s1)*l1 + conv2num(s2)*l2 + conv2num(s3)*l3 return n }
60 queries in 3.444 seconds |