Heim > Backend-Entwicklung > PHP-Tutorial > Alpha.Z写的数字转换为中文的类的补充(我昨晚也是无聊)_PHP

Alpha.Z写的数字转换为中文的类的补充(我昨晚也是无聊)_PHP

WBOY
Freigeben: 2016-06-01 12:28:40
Original
889 Leute haben es durchsucht

去掉了一些多余的零

// 诸海加 2000-7-19
// xiaocui 2000-7-26

class ChineseNumber
{
    var $basical=array(0=>"零","一","二","三","四","五","六","七","八","九");
    //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];
        /

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage