这是唠叨老大写的,多谢他吧阿拉伯数字 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);
?>
//范围: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);
?>
'****人民币大小写转换格式****
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>
别人写的
原
//转换小数部分
$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;