`
kaka2008
  • 浏览: 91836 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
收藏列表
标题 标签 来源
得到中文金额大写 java
        private static final String UNIT = "万千佰拾亿千佰拾万千佰拾元角分";
	private static final String DIGIT = "零壹贰叁肆伍陆柒捌玖";
	/*
	 * 最大值
	 */
	private static final double MAX_VALUE = Double.MAX_VALUE;

public static String getChineseMoney(double money) {
		if (money < 0 || money > MAX_VALUE)
			return "参数非法!";
		long lo = Math.round(money * 100);
		if (lo == 0)
			return "零元整";
		String strValue = lo + "";
		// i用来控制数
		int i = 0;
		// j用来控制单位
		int j = UNIT.length() - strValue.length();
		String rs = "";
		boolean isZero = false;
		for (; i < strValue.length(); i++, j++) {
			char ch = strValue.charAt(i);
			if (ch == '0') {
				isZero = true;
				if (UNIT.charAt(j) == '亿' || UNIT.charAt(j) == '万'
						|| UNIT.charAt(j) == '元') {
					rs = rs + UNIT.charAt(j);
					isZero = false;
				}
			} else {
				if (isZero) {
					rs = rs + "零";
					isZero = false;
				}
				rs = rs + DIGIT.charAt(ch - '0') + UNIT.charAt(j);
			}
		}
		if (!rs.endsWith("分")) {
			rs = rs + "正";
		}
		rs = rs.replaceAll("亿万", "亿");
		return rs;
	}
Global site tag (gtag.js) - Google Analytics