代码如下:
import java.util.Arrays;
public class Num2RMB {
/**
* @param kuchensheng
*
*/
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[]{String.valueOf(zheng),String.valueOf(xiao)};
}
/**
* 把一个四位数的数字字符串变成汉字字符串
* @param numStr 需要被转化的四位数的数字字符串
* @return 四位的数字字符串被转化成汉字字符串
* */
private String toHanStr(String numStr){
String result="";
int numLen=numStr.length();
//依次遍历数字字符的每一位数字
for (int i = 0; i < numLen; i++) {
//把char型数字转化为int型数字,因为他们的ASCII码值恰好相差48
//因此把char型数字减去48得到int型数字,例如‘48’ 转化为48
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
Num2RMB nr=new Num2RMB();
System.out.println(Arrays.toString(nr.divide(68523698.123)));
System.out.println(nr.toHanStr("46985"));
}
}