数字转化为人民币大写
发布时间:2020-05-25 07:46:24 所属栏目:PHP 来源:互联网
导读:数字转化为人民币大写
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 <?php
function numTrmb($num)
{
$d = array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
$e = array('元','拾','佰','仟','万','拾万','佰万','仟万','亿','拾亿','佰亿','仟亿');
$p = array('分','角');
$zheng = "整";
$final = array();
$inwan = 0;//是否有万
$inyi = 0;//是否有亿
$len = 0;//小数点后的长度
$y = 0;
$num = round($num,2);//精确到分
if (strlen($num) > 15) {
return "金额太大";
die();
}
if ($c = strpos($num,'.')) {//有小数点,$c为小数点前有几位
$len=strlen($num)-strpos($num,'.')-1;//小数点后有几位数
}else {//无小数点
$c = strlen($num);
$zheng = '整';
}
for ($i = 0; $i < $c; $i++) {
$bit_num = substr($num,$i,1);
if ($bit_num != 0 || substr($num,$i + 1,1) != 0) {
@$low = $low . $d[$bit_num];
}
if ($bit_num || $i == $c - 1) {
@$low = $low . $e[$c - $i - 1];
}
}
if($len!=1){
for ($j = $len; $j >= 1; $j--) {
$point_num = substr($num,strlen($num) - $j,1);
@$low = $low . $d[$point_num] . $p[$j - 1];
}
}else{
$point_num = substr($num,strlen($num) - $len,1);
$low=$low.$d[$point_num].$p[$len];
}
$chinses = str_split($low,3);//字符串转化为数组
for ($x = count($chinses) - 1; $x >= 0; $x--) {
if ($inwan == 0 && $chinses[$x] == $e[4]) {//过滤重复的万
$final[$y++] = $chinses[$x];
$inwan = 1;
}
if ($inyi == 0 && $chinses[$x] == $e[8]) {//过滤重复的亿
$final[$y++] = $chinses[$x];
$inyi = 1;
$inwan = 0;
}
if ($chinses[$x] != $e[4] && $chinses[$x] !== $e[8]) {
$final[$y++] = $chinses[$x];
}
}
$newstr = (array_reverse($final));
$nstr = join($newstr);
if ((substr($num,-2,1) == '0') && (substr($num,-1) <> 0)) {
$nstr = substr($nstr,(strlen($nstr) -6)).'零'. substr($nstr,-6,6);
}
$nstr=(strpos($nstr,'零角')) ? substr_replace($nstr,"",strpos($nstr,'零角'),6) : $nstr;
return $nstr = (substr($nstr,-3,3)=='元') ? $nstr . $zheng : $nstr;
}
echo numTrmb(556455456156.65);
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
