function cny($number = 0, $int_unit = '元', $is_round = true, $is_extra_zero = false)
// 將數字切分成兩段
$parts = explode('.', $number, 2);
$int = isset($parts[0]) ? strval($parts[0]) : '0';
$dec = isset($parts[1]) ? strval($parts[1]) : '';
// 如果小數點後多於2位,不四捨五入就直接截,否則就處理
$dec_len = strlen($dec);
if (isset($parts[1]) && $dec_len > 2)
$dec = $is_round
? substr(strrchr(strval(round(floatval("0.".$dec), 2)), '.'), 1)
: substr($parts[1], 0, 2);
// 當number為0.001時,小數點後的金額為0元
if(empty($int) && empty($dec))
return '零';
// 定義
$chs = array('0','壹','貳','叄','肆','伍','陸','柒','捌','玖');
$uni = array('','拾','佰','仟');
$dec_uni = array('角', '分');
$exp = array('', '萬');
$res = '';
// 整數部分從右向左找
for($i = strlen($int) - 1, $k = 0; $i >= 0; $k++)
$str = '';
// 按照中文讀寫習慣,每4個字為一段進行轉化,i一直在減
for($j = 0; $j < 4 && $i >= 0; $j++, $i--)
$u = $int > 0 ? $uni[$j] : ''; // 非0的數字後面新增單位
$str = $chs[$int] . $u . $str;
//echo $str."|".($k - 2)."
";$str = rtrim($str, '0');// 去掉末尾的0
$str = preg_replace("/0+/", "零", $str); // 替換多個連續的0
if(!isset($exp[$k]))
$exp[$k] = $exp[$k - 2] . '億'; // 構建單位
$u2 = $str != '' ? $exp[$k] : '';
$res = $str . $u2 . $res;
// 如果小數部分處理完之後是00,需要處理下
$dec = rtrim($dec, '0');
// 小數部分從左向右找
if(!empty($dec))
$res .= $int_unit;
// 是否要在整數部分以0結尾的數字後附加0,有的系統有這要求
if ($is_extra_zero)
if (substr($int, -1) === '0')
$res.= '零';
for($i = 0, $cnt = strlen($dec); $i < $cnt; $i++)
$u = $dec > 0 ? $dec_uni[$i] : ''; // 非0的數字後面新增單位
$res .= $chs[$dec] . $u;
$res = rtrim($res, '0');// 去掉末尾的0
$res = preg_replace("/0+/", "零", $res); // 替換多個連續的0
else
$res .= $int_unit . '整';
if ($number=="0.00")
return $res;
人民幣小寫轉換為大寫
本程式的作用是將人民幣的小寫形式轉換為大寫,例如 呼叫upper 18.5 將會返回字串 壹拾捌圓伍角 package com.zzb.test0 import junit.framework.assert import org.junit.test 測試人民幣小寫轉大寫 author zhengz...
ASP 人民幣小寫轉換為大寫
人民幣小寫轉換為大寫 人民幣大小寫轉換格式 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...
人民幣小寫金額轉換為大寫函式
程式 function money thenumber dim money,i,string1,string2,length,checkp 定義變數 dim one onestr 定義陣列 string1 零壹貳叄肆伍陸柒捌玖 string2 萬仟佰拾億仟佰拾萬仟佰拾元角分釐毫 checkp ins...