将浮点数转换成人民币读法字符串

本文介绍了一个Java程序,该程序能够将浮点数转换为标准的人民币读法字符串形式,包括整数部分和小数部分的正确读法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.test.task;
/**
 * 需求:将浮点数转换成人民币读法字符串
 * 
 * @author Administrator
 *
 */
public class Num2Rmb {
private String[] hanArr = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };
private String[] unitArr_Integer = { "拾", "佰", "仟", "万" };
private String[] unitArr_Decimal = { "分", "角" };


public static void main(String[] args) {
Num2Rmb nr = new Num2Rmb();
//将整数部分和小数部分分开
String[] str = nr.divide(61009.234);
//对整数部分进行人民币读法转换
String Integer = nr.toHanStr_Integer(str[0]);
//对小数部分进行人民币读法转换
String Decimal = nr.toHanStr_Decimal(str[1]);
//将整数小数组合在一起
String Id = Integer + "元" + Decimal;
System.out.println(Id);
}


// 针对整数部分
private String toHanStr_Integer(String numStr) {
String result = "";
int numLen = numStr.length();
for (int i = 0; i < numLen; i++) {
int num = numStr.charAt(i) - 48;
if (i != numLen - 1 && num != 0) {
result += (hanArr[num] + unitArr_Integer[numLen - 2 - i]);
} else {
if (hanArr[num].equals("零") && result.substring(result.length() - 1, result.length()).equals("零")) {
continue;
} else {
result += hanArr[num];
}
}
}
return result;
}


// 针对小数部分
private String toHanStr_Decimal(String numStr) {
String result = "";
int numLen = numStr.length();
for (int i = 0; i < numLen; i++) {
int num = numStr.charAt(i) - 48;
if (i != numLen && num != 0) {
result += (hanArr[num] + unitArr_Decimal[numLen - 1 - i]);
}
}
return result;
}
    
//对整数和小数进行分离,用String[]作为返回值类型
private String[] divide(double num) {
long zheng = (long) num;
long xiao = Math.round((num - zheng) * 100);
return new String[] { zheng + "", String.valueOf(xiao) };
}


}

测试数字是:61009.234

得到结果是:陆万壹仟零玖元贰角叁分


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值