php小写金额转大写
2014-09-19 13:19
141 查看
public static function amountInWords($num) {
if ( empty($num) || !is_numeric($num))
return "";
$return = "";
$unit = array("分", "角", "圆", "整");
$dw = array("", "拾", "佰", "仟", "", "万", "亿", "兆");
$char = array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖");
preg_match_all("/(\d*)\.?(\d*)/", $num, $ar);
if (intval($ar[2][0]) > 0) {
$return .= $ar[2][0][0] == 0 ? "" : $char[$ar[2][0][0]] . $unit[1];
if (isset($ar[2][0][1])) {
if (empty($return) && $ar[1][0] > 0)
$return = $char[0] . $char[$ar[2][0][1]] . $unit[0];
else
$return .= $char[$ar[2][0][1]] . $unit[0];
}
}else{
$return .= $unit[3];
}
if ($ar[1][0] != "") {
$str = strrev($ar[1][0]);
$len = strlen($str);
for ($i = 0; $i < $len; $i++) {
$out[$i] = $char[$str[$i]];
$out[$i] .= $str[$i] != "0"? $dw[$i%4] : "";
if (($i-1 >= 0) && ($str[$i] + $str[$i-1] == 0))
$out[$i] = "";
if ($i%4 == 0)
$out[$i] .= $dw[4+floor($i/4)];
if ($out[$i] == "零万")
$out[$i] = "万零";
}
if ($out[0] == "零")
unset($out[0]);
$left = join("", array_reverse($out));
if (!empty($left))
$return = $left . $unit[2] . $return;
}
return $return;
}
if ( empty($num) || !is_numeric($num))
return "";
$return = "";
$unit = array("分", "角", "圆", "整");
$dw = array("", "拾", "佰", "仟", "", "万", "亿", "兆");
$char = array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖");
preg_match_all("/(\d*)\.?(\d*)/", $num, $ar);
if (intval($ar[2][0]) > 0) {
$return .= $ar[2][0][0] == 0 ? "" : $char[$ar[2][0][0]] . $unit[1];
if (isset($ar[2][0][1])) {
if (empty($return) && $ar[1][0] > 0)
$return = $char[0] . $char[$ar[2][0][1]] . $unit[0];
else
$return .= $char[$ar[2][0][1]] . $unit[0];
}
}else{
$return .= $unit[3];
}
if ($ar[1][0] != "") {
$str = strrev($ar[1][0]);
$len = strlen($str);
for ($i = 0; $i < $len; $i++) {
$out[$i] = $char[$str[$i]];
$out[$i] .= $str[$i] != "0"? $dw[$i%4] : "";
if (($i-1 >= 0) && ($str[$i] + $str[$i-1] == 0))
$out[$i] = "";
if ($i%4 == 0)
$out[$i] .= $dw[4+floor($i/4)];
if ($out[$i] == "零万")
$out[$i] = "万零";
}
if ($out[0] == "零")
unset($out[0]);
$left = join("", array_reverse($out));
if (!empty($left))
$return = $left . $unit[2] . $return;
}
return $return;
}
相关文章推荐
- php小写金额转大写金额
- 用PHP实现小写金额转换大写金额的代码(精确到分)
- php将小写金额改成大写,万亿以下应该都没问题
- php 金额小写数字转大写汉字
- 用PHP实现小写金额转换大写金额【精确到分】
- php小写金额转大写
- 用PHP实现小写金额转换大写金额的代码(精确到分)
- 用PHP 把小写金额转换成大写金额,两位小数(精确角分)
- 将小写数字金额转成大写金额
- 一个Asp中将小写金额转换为大写的函数
- 用JS将小写金额转成大写
- jscript实现的客户端小写金额转换成人民币大写金额(最大千万元位)
- 将小写金额转换为中文大写
- 将小写金额转换为中文大写的SQL函数
- [转贴]将小写金额转换为英文大写的SQL函数
- 小写数字转中文大写或大写金额的C#完整方案
- 将小写数字金额转换为大写得金额
- vbscript下将小写金额转成大写金额
- Delphi中实现金额小写转化成大写
- 将金额小写转化成汉字大写(javascript)