java里将金额转换成汉字输出

java里将金额转换成汉字输出

代码片

package test;

import java.text.DecimalFormat;

public class Test1 {
public static void main(String[] args) {
	
	System.out.println(numberToChacters(17649065.41));
}

public static String numberToChacters(double n) {
    n = sswl(n, 2);
    String result=new DecimalFormat("#").format(n * 100.0);
    System.out.println(result);
    final char[] chars = result.toCharArray();
    final char[] change = { '\u96f6', '\u58f9', '\u8d30', '\u53c1', '\u8086', '\u4f0d', '\u9646', '\u67d2', '\u634c', '\u7396' };
    final char[] postfix3 = { '\u5206', '\u89d2', '\u5143', '\u62fe', '\u4f70', '\u4edf', '\u4e07', '\u62fe', '\u4f70', '\u4edf', '\u4ebf', '\u62fe', '\u4f70', '\u4edf', '\u4e07', '\u62fe', '\u4f70', '\u4edf' };
    result = "";
    int i;
    for (int size = i = chars.length - 1; i > -1; --i) {
        chars[size - i] = change[Integer.parseInt(String.valueOf(chars[size - i]))];
        result = result + String.valueOf(chars[size - i]) + String.valueOf(postfix3[i]);
    }
    for (int j = 0; j < 3; ++j) {
        result = result.replaceAll("\u96f6[\u62fe\u4f70\u4edf]\u96f6", "\u96f6");
    }
    result = result.replaceAll("\u96f6\u4ebf", "\u4ebf");
    result = result.replaceAll("\u96f6\u4e07", "\u4e07");
    result = result.replaceAll("\u96f6\u5143", "\u5143");
    result = result.replaceAll("\u96f6\u4f70", "\u96f6");
    result = result.replaceAll("\u96f6\u62fe", "\u96f6");
    result = result.replaceAll("\u96f6\u4edf", "\u96f6");
    result = result.replaceAll("\u4ebf\u4e07", "\u4ebf");
    result = result.replaceAll("^\u58f9\u62fe", "\u58f9\u62fe");
    result = result.replaceAll("\u96f6\u5206", "");
    result = result.replaceAll("\u96f6\u89d2$", "");
    result = result.replaceAll("\u96f6\u89d2", "\u96f6");
    if (result.equals("")) {
        result = "\u96f6\u5143";
    }
    result = result.replaceAll("\u5143$", "\u5143\u6574");
    return result;
}

	  public static double sswl(double ys, int xs)
	  {
	    double res = 0.0D;
	    double sx = Math.pow(10.0D, xs);
	    res = Math.round(sx * ys) / sx;
	    return res;
	  }
}



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值