package package1;
import java.util.Arrays;
public class num_rmb {
private static final String numStr = null;
private String[] hanArr = {"零","壹","貳","叁","肆","伍","陆","柒","捌","玖"};
private String[] unitArr = {"十","百","千","万"};
/**
* 把一个浮点数分解成整数部分和小数部分字符串
* @param num 需要被分解的浮点数
* @return 分解出来的整数部分和小数部分.第一数组元素是整数元素,第二个数组元素是小数部分
*/
private String[] divide(double num)
{
//讲一个浮点数强制类型转换为long型,即得到它的整数部分。
long zheng = (long) num;
//浮点数减去整数部分,得到小数部分,小数部分乘以100后再取整数得到2位小数
long xiao = Math.round((num-zheng) * 100);
//下面用了两种方法把整数转换为字符串
return new String[]{zheng + "", String.valueOf(xiao)};
}
/**
* 把一个四位的数字字符串变成汉子字符串
* @parm numStr 需要被转换的四位的数字字符串
* @return 四位的数字字符串被转换成汉子字符串
*/
private String toHanStr(String unumStrmStr)
{
String result = "";
int numLen = numStr.length();
//依次遍历数字字符串的每一位数字
for(int i = 0; i < numLen; i++)
{
//把char型数字转换成int 型数字,因为他们的ASCII码值恰好相差48
//因此把char型数字减去48得到int型数字,例如'4'被转换成 4
int num = numStr.charAt(i) - 48;
if(i != numLen - 1 && num != 0)
{
result += hanArr[num] + unitArr[numLen - 2 - i];
}
else
{
result += hanArr[num];
}
}
return result;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
num_rmb nr = new num_rmb();
//测试把一个浮点数分解成整数部分和小数部分;
System.out.println(Arrays.toString(nr.divide(236711125.123)));
//测试把一个四位的数字字符串变成汉子字符串
System.out.println(nr.toHanStr("6109"));
}
}