php中如何将小写金额转为大写金额?

php中如何将小写金额转为大写金额?

以前用js写过一个。
思路并不复杂。中文金额大写有个特点,每4个数为一个阶段。
例如1234 = 一千二百三十四
第一组4个数,在每个数字后加上位的名称即可,个位省略。
例如12345678 = 一千二百三十四万五千六百七十八
左边4个数按上面方式处理完,再加一个“万”字,右边4个数同样按上面方式处理。
再多4位数就加一个“亿”
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-25
<input type="text" id="num" onblur="change(this.value)"/>
<span id="rs"></span>
</body>
<script type="text/javascript">
/*function getimg(img){
    id = parseInt(Math.random()*4+1);
    id = id<10?"0"+id:id;
    img.src="img/news/"+id+".jpg";
}*/
var n = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
var dw = new Array("","拾","佰","仟","万","亿");
function change(num){
    if(isNaN(num)||num.length==0){
        str = "零";
    }else{
        str = getrs(num);
    }
    document.getElementById("rs").innerHTML = str;
}
function getrs(num){
    var len = num.length;
    str = "";
    if(len<=5){
        for(i=0;i<len-1;i++){
            str += n[num[i]];
            if(num[i]!="0"){
                str += dw[len-1-i];
            }
        }
        if(num[len-1]!="0"){
            str += n[num[i]];
        }
    }else if(len>5&&len<9){
        str += getrs(num.substr(0,len-4));
        if(str!=""){
            str +=dw[4];
        }
        //万以下
        str += getrs(num.substr(len-4));
    }else{
        //亿以上
        str += getrs(num.substr(0,len-8));
        if(str!=""){
            str +=dw[5];
        }
        //亿以下
        str += getrs(num.substr(len-8));
    }
    str = str.replace(/["零"]+/g,"零");
    str = str.replace(/["零"]+$/g,"");
    return str;
}
</script>

这是将数字转化为大写的,不过是整数,小数部分很简单,往后读就行了

本回答被提问者采纳
第2个回答  2013-11-25
function d2cn($d) {
$aryN = array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖');
$aryW = array('分','角','元','拾','佰','仟','万','拾','佰','仟','亿','拾','佰','仟','万');
$return = "";
$d = "". $d * 100;
if(!$d || strlen($d) > 15) return $return;
for ($i=0,$len=strlen($d); $i<$len; $i++) {
$w = $len - $i - 1;
if(!$d{$i}) {
if($d{$i+1}) $return .= $aryN[$d{$i}];
if(in_array($w, array(2,6,10))) $return .= $aryW[$w];
}
else $return .= $aryN[$d{$i}].$aryW[$w];
}
return $return;
}
直接传入金额就可以了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网