将阿拉伯数字钱格式转换成中文格式

2 篇文章 0 订阅
/**
 * @description:将阿拉伯数字钱格式转换成中文格式
 * @author:zhanyan_x
 * @version:1.0
 * @date:2013-12-27 下午3:28:48
 */
public class DemoConvertMoney {
	public static String[] digitals=new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
	public static void main(String[] args) {
		System.out.println(convertMoneyFormat(1023406.09));
		
	}
	public static String convertMoneyFormat(Double money){
		int num1=(int) (money/10000);//取万位上的
		int num2=(int) (money%10000);//取个位到千位的
		int num3=(int)(money*10%10);//取小数点后第一位(角)
		int num4=(int)(money*100%10);//取小数点后第二位的(分)
		String wanwei=num1==0?"":convert(num1)+"万";
		return wanwei+convert(num2)+"元"+jiaoFen(num3, num4);
	}
	/**
	 * 转换个位到千位
	 * @param num
	 * @return
	 */
	public static String convert(int num){
		
		StringBuffer sb=new StringBuffer();
		int qian=num/1000;
		if (qian!=0) {
			sb.append(digitals[qian]+"千");
		}
		int bai=num/100%10;
		if (bai!=0) {
			sb.append(digitals[bai]+"百");
		}
		int shi=num%100/10;
		int ge=num%10;
		if (ge==0) {
			if (shi!=0) {
				sb.append(digitals[shi]+"十");
			}
		}else {
			if (shi==0) {
				sb.append(digitals[shi]+digitals[ge]);
			}else {
				sb.append(digitals[shi]+"十"+digitals[ge]);
			}
		}
		return sb.toString();
	}
	
	/**
	 * 转换角分
	 * @param num1角
	 * @param num2分
	 * @return
	 */
	public static String jiaoFen(int num1,int num2){
		String str=null;
		if (num1!=0||num2!=0) {
			if (num2==0) {
				if (num1!=0) {
					str=digitals[num1]+"角";
				}
			}else {
				str=digitals[num1]+"角"+digitals[num2]+"分";
			}
		}
		return str;
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值