[共享源码]数字转换成中文大写
$CHDIGIT= array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖');
$CHUNIT1 = array('','万','亿');
$CHUNIT2 = array('','拾','佰','千');
function ChineseSpellNumber($number)
{
$strNumber = '';
global $CHDIGIT, $CHUNIT1;
$j = 0;
while( !empty($number) )
{
$thousands = substr($number, -4);
$tmp = trim(GetThousands((int)$thousands));
if ($j<sizeof($CHUNIT1))
{
$chunit = $CHUNIT1[$j];
} else {
$chunit = '';
for ($k = 0; $k <= $j - sizeof($CHUNIT1); $k++)
{
$chunit .= $CHUNIT1[1];
}
$chunit .= $CHUNIT1[2];
}
$chunit = "<font color='#0000FF'>$chunit</font>";
$strNumber = $tmp.(empty($tmp)? '' : $chunit).$strNumber;
$number = substr($number, 0, -4);
$j ++;
}
$strNumber = trim($strNumber, $CHDIGIT[0]);
return $strNumber;
}
function GetThousands($thousands)
{
global $CHDIGIT, $CHUNIT2;
$n = (int)$thousands;
$j = 0;
while ($n > 0)
{
$mod = $n % 10;
$n = floor($n /10);
$tmp = $CHDIGIT[$mod]. ($mod==0?'':$CHUNIT2[$j]);
$result = $tmp . $result;
$j ++;
}
if (strlen($thousands) < 4) $result = $CHDIGIT[0].$result;
$result = preg_replace('/('.$CHDIGIT[0].')+/', '$1', $result);
$result = preg_replace('/('.$CHDIGIT[0].')+$/', '', $result);
return $result;
}
测试地址:http://www.dictworld.com/search.php?q=1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890&lang=cn
问题点数:20、回复次数:10Top
1 楼jaexc(大飞)回复于 2005-06-03 00:15:29 得分 5
呵呵
不错的哈
支持Top
2 楼xuzuning(唠叨)回复于 2005-06-03 08:21:52 得分 5
1,234,567,890,123,456,789,012,345,678,901,234,567,890
Num.
1. 壹千贰佰叁拾肆万万万万万万万亿伍千陆佰柒拾捌万万万万万万亿玖千零壹拾贰万万万万万亿叁千肆佰伍拾陆万万万万亿柒千捌佰玖拾万万万亿壹千贰佰叁拾肆万万亿伍千陆佰柒拾捌万亿玖千零壹拾贰亿叁千肆佰伍拾陆万柒千捌佰玖拾
2. One Two Hundred Thirty Four Five Hundred Sixty Seven Eight Hundred Ninety One Hundred Twenty Three Four Hundred Fifty Six Seven Hundred Eighty Nine Twelve Three Hundred Forty Five Six Hundred Seventy Eight Trillion, Nine Hundred One Billion, Two Hundred Thirty Four Million, Five Hundred Sixty Seven Thousand, Eight Hundred Ninety
Top
3 楼flyonet(人生如梦【★】梦如人生)回复于 2005-06-03 09:47:14 得分 0
唠叨就是老道。
呵呵,一测试就要打击别人的自信了。Top
4 楼Meteorlet(http://smartdict.cn)回复于 2005-06-03 12:45:28 得分 0
本来数字超过8位以上就没什么用,我之所以限制长度在50位以内,仅仅是为了测试而已,还不至于打击我的自信。Top
5 楼zairwolf(君子兰)回复于 2005-06-03 16:33:18 得分 0
晕。Top
6 楼zairwolf(君子兰)回复于 2005-06-03 16:34:00 得分 5
111,111,111,111,111,111,111,111,111,111
Num.
1. 壹拾壹万万万万万亿壹千壹佰壹拾壹万万万万亿壹千壹佰壹拾壹万万万亿壹千壹佰壹拾壹万万亿壹千壹佰壹拾壹万亿壹千壹佰壹拾壹亿壹千壹佰壹拾壹万壹千壹佰壹拾壹
2. One Hundred Eleven One Hundred Eleven One Hundred Eleven One Hundred Eleven One Hundred Eleven One Hundred Eleven Trillion, One Hundred Eleven Billion, One Hundred Eleven Million, One Hundred Eleven Thousand, One Hundred Eleven
Top
7 楼zairwolf(君子兰)回复于 2005-06-03 16:34:11 得分 0
100,000,000,000,000,000
Num.
1. 壹拾万万亿
2. One Hundred
Top
8 楼Meteorlet(http://smartdict.cn)回复于 2005-06-03 22:18:09 得分 0
共享源码,有什么问题就提,列个结果什么意思?Top
9 楼zairwolf(君子兰)回复于 2005-06-03 23:23:39 得分 0
我是逗笑,毋怪。Top
10 楼snmr_com(麒麟厍人)回复于 2005-06-04 08:48:32 得分 5
英文特有趣Top




