人民币 大写转换

哈哈 阅读:543 2021-06-15 12:03:21 评论:0
public class NumberData { 
    /**-人民币 大写转换 
     *  
     * @param num ----要转化的数字  
     * @return 
     */ 
    public static String makeUpperCaseSum(String numStr) { 
 
    String isNeg = "";//正或者负 
    double num = Double.parseDouble(numStr); 
        if (num < 0) { 
            num *= -1; 
            isNeg = "负"; 
            numStr = numStr.substring(1); 
        } 
        final String[] upper_number = { "零","壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; 
        final String[] number_dw = { "", "拾", "佰", "仟", "万", "拾", "佰", 
                "仟", "亿", "拾", "佰", "仟", "万" }; 
        String operate = numStr; 
        String upper_str = ""; 
        String upper_str_pre = ""; 
        String upper_str_later = ""; 
        String vsDx; 
        int i, j, point_pos, int_len; 
        if (num < 0.01) { 
            return "零圆整"; 
        } 
 
        upper_str_pre = ""; 
 
 
        point_pos = operate.indexOf("."); 
        if (point_pos == -1) 
            int_len = operate.length(); 
         else  
            int_len = point_pos; 
        if (int_len > number_dw.length)  
            return "too long !!!"; 
        if (num > 0) { 
            for (i = 0; i < operate.length(); i++) { 
                j = int_len - i; 
                if(j>0){//整数部分 
                    int k = Integer.parseInt(operate.substring(i, i + 1)); 
                    if(k==0){//数字为0时 
                    if(j==5||j==9)//单位为亿或者万时 
                        upper_str_pre += upper_number[k] + number_dw[j-1];  
                        else                
                    upper_str_pre +=  upper_number[k]; 
                    } 
                    else 
                    upper_str_pre += upper_number[k] + number_dw[j-1];             
                }else if(j<0){//小数部分 
                    int k = Integer.parseInt(operate.substring(i, i + 1)); 
                    upper_str_later += upper_number[k];   
                    if(j==-1) 
                        upper_str_later += "角"; 
                    else 
                        upper_str_later += "分"; 
                } 
            } //end for 
             
        } //end if 
    upper_str_pre += "圆"; 
        while(upper_str_pre.indexOf("零零")!=-1){ 
        upper_str_pre = upper_str_pre.replaceAll("零零","零"); 
        } 
    upper_str_pre = upper_str_pre.replaceAll("零万","万"); 
    upper_str_pre = upper_str_pre.replaceAll("零亿","亿"); 
    upper_str_pre = upper_str_pre.replaceAll("亿万","亿零"); 
    upper_str_pre = upper_str_pre.replaceAll("零零","零"); 
    upper_str_pre = upper_str_pre.replaceAll("零圆","圆"); 
    if("圆".equals(upper_str_pre)) 
    upper_str_pre = ""; 
    upper_str = isNeg+upper_str_pre + upper_str_later; 
    upper_str = upper_str.replaceAll("零角零分","整"); 
    if(point_pos == -1) 
    upper_str += "整"; 
        return upper_str; 
    } 
}

标签:java
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号