去掉了一些多余的零 零,一,二,三,四,五,六,七,八,九); //var $basical=array(0=>零,壹,贰,叁,肆,伍,陆,柒,捌,玖); var $advanced=array(1=>十,百,千); //var $advanced=array(1=>拾,佰,仟); var $top=array(1=>万,亿); var $level; // 以4位为一级 // 先实现万一下的数的转换 function parsenumber($number) { if ($number>999999999999) // 只能处理到千亿。 return 数字太大,无法处理。抱歉!; if ($number==0) return 零; for($this->level=0;$number>0.0001;$this->level++,$number=floor($number / 10000)) { // 对于中文来说,应该是4位为一组。 // 四个变量分别对应 个、十、百、千 位。 $n1=substr($number,-1,1); if($number>9) $n2=substr($number,-2,1); else $n2=0; if($number>99) $n3=substr($number,-3,1); else $n3=0; if($number>999) $n4=substr($number,-4,1); else $n4=0; if($n4) $parsed[$this->level].=$this->basical[$n4].$this->advanced[3]; else if(($number/10000)>=1) // 千位为0,数值大于9999的情况 $parsed[$this->level].=零; if($n3) $parsed[$this->level].=$this->basical[$n3].$this->advanced[2]; else if(!ereg(零$,$parsed[$this->level]) && ($number / 1000)>=1) // 不出现连续两个“零”的情况 $parsed[$this->level].=零; if($n2) $parsed[$this->level].=$this->basical[$n2].$this->advanced[1]; else if(!ereg(零$,$parsed[$this->level]) && ($number / 100)>=1) // 不出现连续两个“零”的情况 $parsed[$this->level].=零; if($n1) $parsed[$this->level].=$this->basical[$n1]; if($parsed[$this->level]!=零) { if(ereg(零$,$parsed[$this->level])) $parsed[$this->level]=substr($parsed[$this->level],0,strlen($parsed[$this->level])-2); if($this->level>0) $result=$parsed[$this->level].$this->top[$this->level].$result; else $result=$parsed[$this->level].$result; } } //for($this->level-=1;$this->level>=0;$this->level--) //{ // $result.=$parsed[$this->level].$this->top[$this->level]; //} //if(ereg(零$,$result)) // $result=substr($result,0,strlen($result)-2); return $result; } }; $c=new chinesenumber(); echo $c->parsenumber(100000000001); ?>
http://www.bkjia.com/phpjc/531703.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/531703.htmltecharticle去掉了一些多余的零 零,一,二,三,四,五,六,七,八,九); //var $basical=array(0=>零,壹,贰,叁,肆,伍,陆,柒,捌,玖); var $advanced=array(1=>十,百,千); //var $...