人民币大写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要将Java数字转为人民币大写汉字输出,可以使用如下代码: ```java import java.math.BigDecimal; public class NumberToChinese { // 数字对应的汉字 private static final String[] CN_NUM = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; // 数量级对应的汉字 private static final String[] CN_UNIT = {"", "拾", "佰", "仟", "万", "亿"}; // 小数点后面的汉字 private static final String CN_POINT = "点"; // 人民币大写汉字 private static final String CN_MONETARY_UNIT = "元"; /** * 数字转为人民币大写汉字 * @param num 数字 * @return 人民币大写汉字 */ public static String numberToChinese(BigDecimal num) { if (num == null || num.compareTo(BigDecimal.ZERO) == 0) { return "零元整"; } // 处理整数部分 StringBuilder sb = new StringBuilder(); long integerPart = num.longValue(); // 获取整数部分 int unitIndex = 0; // 数量级索引 while (integerPart > 0) { int digit = (int)(integerPart % 10); // 获取当前位的数字 if (digit > 0 || sb.length() > 0) { // 当前位为0且前面已经有数字,则在当前位添加“零” sb.insert(0, CN_NUM[digit] + CN_UNIT[unitIndex]); } else if (unitIndex == 4) { // 当前位为“万”时,如果前面没有数字,则在当前位添加“零” sb.insert(0, CN_NUM[digit]); } integerPart /= 10; unitIndex++; } sb.append(CN_MONETARY_UNIT); // 添加“元” // 处理小数部分 int decimalPlaces = num.scale(); // 获取小数位数 if (decimalPlaces > 0) { // 如果有小数,则处理小数部分 sb.append(CN_POINT); long decimalPart = num.movePointRight(decimalPlaces).longValue() % 100; // 获取小数部分 if (decimalPart > 0) { // 如果小数部分不为0 sb.append(CN_NUM[decimalPart / 10] + "角"); if (decimalPart % 10 > 0) { sb.append(CN_NUM[decimalPart % 10] + "分"); } } else { // 如果小数部分为0 sb.append("整"); } } else { // 如果没有小数,则添加“整” sb.append("整"); } return sb.toString(); } public static void main(String[] args) { BigDecimal num = new BigDecimal("123456789.01"); System.out.println(numberToChinese(num)); // 壹亿贰仟叁佰肆十五万陆仟捌佰柒十元零壹分 } } ``` 注意:该代码仅适用于人民币,如果要将其他货币转为大写汉字,需要根据具体情况进行修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值