将浮点数转换成人民币读法字符串
2017-09-20 15:45
375 查看
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
得到结果是:陆万壹仟零玖元贰角叁分
/**
* 需求:将浮点数转换成人民币读法字符串
*
* @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
得到结果是:陆万壹仟零玖元贰角叁分
相关文章推荐
- 将浮点数转换成人民币读法字符串(整数部分在12位以内)
- 将一个浮点数转换成人民币读法字符串(java)
- 浮点数转换成人民币读法字符串
- 用java编写一个程序,将浮点数转换成人民币读法字符串
- 将一个浮点数转换成人民币读法字符串(java)
- 浮点数转换成人民币读法字符串
- 实现浮点数转换成人民币读法字符串(Java)
- 输入一个浮点数,打印出相对应的人民币读法的字符串,如:1605.22转换后为:壹仟陆佰零伍元贰角贰分
- 疯狂Java练习题 将浮点数转换成人民币读法字符串
- 将一个浮点数转换成人民币读法字符串(java)
- 将浮点数转换成人民币读法字符串(JAVA)
- JavaSE014_数组之应用举例(实现浮点数转换成人民币读法字符串)
- Java实现浮点数转换成人民币读法字符串
- java程序---将一个浮点数转换成人民币读法
- 疯狂java讲义4.2--浮点数转换成人民币读法
- Java小程序——将浮点数转换成人民币读法
- 将浮点数转化为人民币读法字符串
- 将浮点数转成人民币读法字符串
- 将浮点数转换为人民币读法
- CString、char*、string、int、_bstr_t、CTime、COleDateTime相互转换,判断一个字符串是一个浮点数