PHP我不會,給你一個JavaScript的吧,希望對你有用function SumToBig(numArg){
var arBig1='零,壹,貳,參,肆,伍,陸,柒,捌,玖'.split(',')
var arBig2=',拾,佰,仟'.split(',')
var strBig='',a,reg=/(0*$)/
a=numArg.match(reg)
for (i=a[1].length;i<numArg.length;i++){
strBig=arBig1[numArg.substring(numArg.length-i-1,numArg.length-i)*1]+arBig2[(numArg.length-i)%4]+i+strBig
}
return strBig
return strBig
}

解决方案 »

  1.   

    <?php
    //范围:0~9999,9999,9999。function Transform($whole) {  //分离整数与小数
      $num = strtok($whole,".");
      $dig = strtok("\0");  //转换整数部分
      $i=1;
      $len = strlen($num);  $dw2 = array("","万","亿");//大单位
      $dw1 = array("拾","佰","千");//小单位
      $dw = array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");//整数部分用
      $dws = array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");//小数部分用
      $k0=0;
      $k1=0;//计小单位
      $k2=0;//计大单位
      $str="";  for($i=1;$i<=$len;$i++) {
        $n = $num[$len-$i];
        if($n=="0") {
          $k0++;
          if($k1!=0)
            $str = substr($str,2);
        }else
          $k0=0;
        if($k0 <= 1)
          $str = $dw[$n].$str;//加数字    if($len-$i-1>=0) {//在数字范围内
          if($k1!=3) {//加小单位
            $str = $dw1[$k1].$str;
            $k1++;
          }else {//不加小单位,加大单位
            $k1=0;
            $temp = substr($str,0,2);
            if($temp=="万" || $temp=="亿")//若大单位前没有数字则舍去大单位
              $str = substr($str,2);
            $str = $dw2[$k2].$str;
          }
        }
        if($k1==3) {//小单位到千则大单位进一
          $k2++;
        }
      }  //转换小数部分
      $strdig="";
      for($i=0;$i<strlen($dig);$i++) {
        $n = $dig[$i];
        $strdig .= $dws[$n];//加数字
      }
      if(strlen($dig)>0)
        $str .= "点".$strdig;
      return $str;
    }
    echo Transform(120045.345);
    echo "<br>";
    echo Transform(10032);
    ?>