⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tocap.java

📁 △项目名称:阳光酒店管理系统 △委托单位:清华IT学习认证中心 △制作小组:华育国际 112301 班 CS结构
💻 JAVA
字号:
/*
 * @(#)ToCap.java	1.24 03/12/19
 *
 * Copyright 2006 CazoSoft, Inc. All rights reserved.
 */

package sunsdk.system;

/**
 * <code> ToCap </code>
 * <p>
 * 本类用于转化中文大写人民币
 * 
 * @author 鲜强
 * @version 22.14, 04/05/06
 * @since CAZOSOFT 1.0
 */
public class ToCap {

    /**
     * 用户设置大写钱数(100,000,000 (一亿)以内).
     * 
     * @param money :
     *            String 接收用户的正实数.
     * @return : String 包括 圆整 或 角分的中文大写人民币,如果不合法,将返回空(null)
     */
    public String setMoney(String money) {

        String re = null;
        double num;
        
        //测试数据是否合法
        try {
            num = Double.parseDouble(money.trim());
            if (num < 100000000 && num >= 0) {
                //合法, 使用字符串开始转换
                re = this.mySetMoney(money);
            }//end if
        } catch (Exception ex) {
        }//end try
        //返回值
        return re;
    }
    
    /**
     * 大写转换函数. 功能: 转换数字为中文大写
     * 
     * @param num :
     *            int 接受整数
     * @return : String 大写数字 零 到 玖.
     */
    private String setDaXie(int num) {

        String re = null;
        switch (num) {
        case 0:
            re = "零";
            break;
        case 1:
            re = "壹";
            break;
        case 2:
            re = "贰";
            break;
        case 3:
            re = "叁";
            break;
        case 4:
            re = "肆";
            break;
        case 5:
            re = "伍";
            break;
        case 6:
            re = "陆";
            break;
        case 7:
            re = "柒";
            break;
        case 8:
            re = "捌";
            break;
        case 9:
            re = "玖";
            break;
        default:
            break;
        }
        return re;
    }

    /**
     * 处理大写人民币
     * 
     * @param num :
     *            String 接收处理过的字符串(实为数字).
     * @return : 返回处理过的大写人民币.
     */
    private String mySetMoney(String num) throws Exception {

        //要返回的字符串
        String re = "";

        //转换过程
        String setNum = null;
        int index = num.indexOf(".");

        //处理整数
        if (index == -1) {
            setNum = num;
        } else {
            setNum = num.substring(0, index);
        }
        int weiShu = setNum.length();
        if (weiShu > 0) {
            int leng = setNum.length();
            int numYuan = Integer.parseInt("" + setNum.charAt(weiShu - 1));
            String zhuanYuan = setDaXie(numYuan);
            re = zhuanYuan;
            //个位
            if (weiShu > 1) {
                int numShi = Integer.parseInt("" + setNum.charAt(weiShu - 2));
                String zhuanShi = setDaXie(numShi);
                //十位
                re = zhuanShi + "拾" + re;
                if (weiShu > 2) {
                    int numBai = Integer.parseInt(""
                            + setNum.charAt(weiShu - 3));
                    String zhuanBai = setDaXie(numBai);
                    //百位
                    re = zhuanBai + "佰" + re;
                    if (weiShu > 3) {
                        int numQian = Integer.parseInt(""
                                + setNum.charAt(weiShu - 4));
                        String zhuanQian = setDaXie(numQian);
                        //千位
                        re = zhuanQian + "仟" + re;
                        if (weiShu > 4) {
                            int numWan = Integer.parseInt(""
                                    + setNum.charAt(weiShu - 5));
                            String zhuanWan = setDaXie(numWan);
                            //万位
                            re = zhuanWan + "万" + re;
                            if (weiShu > 5) {
                                int numShiWan = Integer.parseInt(""
                                        + setNum.charAt(weiShu - 6));
                                String zhuanShiWan = setDaXie(numShiWan);
                                //十万位
                                re = zhuanShiWan + "拾" + re;
                                if (weiShu > 6) {
                                    int numBaiWan = Integer.parseInt(""
                                            + setNum.charAt(weiShu - 7));
                                    String zhuanBaiWan = setDaXie(numBaiWan);
                                    //百万位
                                    re = zhuanBaiWan + "佰" + re;
                                    if (weiShu > 7) {
                                        int numQianWan = Integer.parseInt(""
                                                + setNum.charAt(weiShu - 8));
                                        String zhuanQianWan = setDaXie(numQianWan);
                                        //千万位
                                        re = zhuanQianWan + "仟" + re;
                                    }//end qianwan
                                }//end baiwan
                            }//end shiwan
                        }//end wan
                    }//end qian
                }//end bai
            }//end shi
        }//end yuan
      
        //处理小数
        if (index != -1) {
            String xiaoShu = num.substring(index + 1, num.length());
            int leng = xiaoShu.length();
            int numJiao = Integer.parseInt("" + xiaoShu.charAt(0));
            String zhuanJiao = setDaXie(numJiao);
            int numFen;
            if (leng == 1) {
                numFen = 0;
            }//end if
            numFen = Integer.parseInt("" + xiaoShu.charAt(1));
            String zhuanFen = setDaXie(numFen);
            //十分位+百分位
            if (numJiao == 0 && numFen != 0 || numJiao != 0 && numFen != 0) {
                re = re + "圆" + zhuanJiao + "角" + zhuanFen + "分";
            } else {
                re = re + "圆整";
            }//end if
        } else {
            re = re + "圆整";
        }//end index

        return re;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -