疯狂JAVA习题 数字转换成人民币
2016-11-01 12:24
288 查看
public class Num2Rmb{
private String[] hanArr = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
private String[] unitArr = {"", "十", "佰", "仟"};
private String[] four_uinitArr = {"", "万", "亿"};
private String[] two_unitArr = {"角", "分"};
private String[] divide(double num)
{
String[] result = new String[2];
long iValue = (long)num;
int fValue = (int)((num - iValue)*100);
result[0] = ""+ iValue;
result[1] = ""+ fValue;
System.out.println("整数:" + result[0] + ", 小数:" + result[1]);
return result;
}
private String itoHanStr(String numstr)
{
int len = numstr.length();
int col = (len-1)/4;
int row = (len-1) % 4;
String result = "";
int index = 0;
if(len > 12)
{
System.out.println("too big, please enter again: \n");
return null;
}
System.out.println("col = " + col + ", row = " + row);
for(int i = 0; i <= col; i++)
{
for(int j = 0; j <= row; j++)
{
if(numstr.charAt(index) == '0')
{
if((numstr.charAt(index-1) == '0' && j != 0)|| j == row)
{
index++;
continue;
}
result += hanArr[numstr.charAt(index) - '0'];
}
else
{
result += hanArr[numstr.charAt(index) - '0'];
result += unitArr[row-j];
}
index++;
}
result += four_uinitArr[col-i];
row = 3;
}
return result;
}
private String ftoHanStr(String numstr)
{
String result = "";
if(numstr == "00")
return null;
result += hanArr[numstr.charAt(0) - '0'];
if(numstr.charAt(0) != '0')
{
result += two_unitArr[0];
}
result += hanArr[numstr.charAt(1) - '0'];
if(numstr.charAt(1) != '0')
{
result += two_unitArr[1];
}
return result;
}
public static void main(String[] args)
{
Num2Rmb nr = new Num2Rmb();
//123 4567 8903
//1005200436.85
//105342006.85
double d = 1005200436.85;
String[] result = nr.divide(d);
System.out.println(nr.itoHanStr(result[0])+ "元");
System.out.println(nr.ftoHanStr(result[1]));
}
}
private String[] hanArr = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
private String[] unitArr = {"", "十", "佰", "仟"};
private String[] four_uinitArr = {"", "万", "亿"};
private String[] two_unitArr = {"角", "分"};
private String[] divide(double num)
{
String[] result = new String[2];
long iValue = (long)num;
int fValue = (int)((num - iValue)*100);
result[0] = ""+ iValue;
result[1] = ""+ fValue;
System.out.println("整数:" + result[0] + ", 小数:" + result[1]);
return result;
}
private String itoHanStr(String numstr)
{
int len = numstr.length();
int col = (len-1)/4;
int row = (len-1) % 4;
String result = "";
int index = 0;
if(len > 12)
{
System.out.println("too big, please enter again: \n");
return null;
}
System.out.println("col = " + col + ", row = " + row);
for(int i = 0; i <= col; i++)
{
for(int j = 0; j <= row; j++)
{
if(numstr.charAt(index) == '0')
{
if((numstr.charAt(index-1) == '0' && j != 0)|| j == row)
{
index++;
continue;
}
result += hanArr[numstr.charAt(index) - '0'];
}
else
{
result += hanArr[numstr.charAt(index) - '0'];
result += unitArr[row-j];
}
index++;
}
result += four_uinitArr[col-i];
row = 3;
}
return result;
}
private String ftoHanStr(String numstr)
{
String result = "";
if(numstr == "00")
return null;
result += hanArr[numstr.charAt(0) - '0'];
if(numstr.charAt(0) != '0')
{
result += two_unitArr[0];
}
result += hanArr[numstr.charAt(1) - '0'];
if(numstr.charAt(1) != '0')
{
result += two_unitArr[1];
}
return result;
}
public static void main(String[] args)
{
Num2Rmb nr = new Num2Rmb();
//123 4567 8903
//1005200436.85
//105342006.85
double d = 1005200436.85;
String[] result = nr.divide(d);
System.out.println(nr.itoHanStr(result[0])+ "元");
System.out.println(nr.ftoHanStr(result[1]));
}
}
相关文章推荐
- java 转换数字为人民币大写
- 疯狂java讲义4.2--浮点数转换成人民币读法
- 疯狂Java练习题 将浮点数转换成人民币读法字符串
- java中数字转换人民币
- 疯狂java讲义 第四章 01人民币的转换读法小程序
- java实现将数字转换成人民币大写
- 算法--java实现将数字转换成人民币大写(迅雷面试题)
- Java人民币从数字形式转换成汉字(繁体)!
- 【疯狂JAVA讲义练习】 数字转人民币大写【加强版】
- Java学习小试牛刀之数字金额转换为人民币大写
- 疯狂java讲义 第四章 01人民币的转换读法小程序
- 将数字金额转换成人民币大写字符串
- 将人民币数字转换为中文大写
- 将数字金额转换成大写人民币形式(网站收到的一个方法很不错)
- 把数字金额转换成人民币大写[原创]
- 数字转换为大写人民币(附源码)_AX
- ABAP--将数字金额转换为人民币大写字符串
- 数字转换为大写人民币(附源码)
- Lotus中货币数字转换成人民币大写
- ABAP--将数字金额转换为人民币大写字符串