这是唠叨老大写的,多谢他吧阿拉伯数字 to 汉字 的转换比方说 10032 可以转换成 一万零三十二<?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);
?>

解决方案 »

  1.   

    <%
    '****人民币大小写转换格式****
    dim str(9)
    str(0)="零"
    str(1)="壹"
    str(2)="贰"
    str(3)="叁"
    str(4)="肆"
    str(5)="伍"
    str(6)="陆"
    str(7)="柒"
    str(8)="捌"
    str(9)="玖"
    aa=Request.form("source")
    hh=formatnumber(aa,2,-1)
    aa=replace(hh,".","")
    aa=replace(aa,",","")
    for i=1 to len(aa)
    s=mid(aa,i,1)
    mynum=str(s)
    select case(len(aa)+1-i)
    case 1: k= mynum&"分"
    case 2: k= mynum&"角"
    case 3: k= mynum&"元"
    case 4: k= mynum&"拾"
    case 5: k= mynum&"佰"
    case 6: k= mynum&"仟"
    case 7: k= mynum&"万"
    case 8: k= mynum&"拾"
    case 9: k= mynum&"佰"
    case 10: k= mynum&"仟"
    end select
    m=m&k
    next
    %>
    <html>
    <head>
    <title>数字转换</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <!--
    Elseif(s=".") then
    n=m
    i=i+2
    for j=i to len(aa)
    s=mid(aa,i,1)
    mynum=str(s)
    select case(len(aa)+1-i)
    case 1: p= mynum&"分"
    case 2: p= mynum&"角"
    end select
    m=m&p
    next
    --><body bgcolor="#FFFFFF">
    <form method="post" name="forma">
    <input type="text" name="source" value="<%=hh%>">
    =
    <input type="text" name="result" value="<%=m%>" size="40"><input type="submit" name="Submit" value="提交 " >
    </form>
    </body>
    </html>
    别人写的
      

  2.   

    不错,收藏先。http://www.gflight.com
      

  3.   

    php的呀,还是请唠叨老大改一下最好,供大家享用.
      

  4.   



      //转换小数部分
      $strdig="";
      ....
      return $str;改做
      //转换小数部分
      $xdw = array("角","分");
      $strdig="";
      $dig = sprintf("%02d",round($dig,-strlen($dig)+2)); //这里做了四舍五入
      for($i=0;$i<2;$i++) {
        $n = $dig[$i];
        $strdig .= $dws[$n].$xdw[$i];
      }
      $str .= "元".$strdig;
      return $str;