- import java.util.*;
- public class Num2Rmb
- {
- private String [] hanArr = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖",};
- private String [] unitArr = {"十","百","千",};
- /**
- 把一个浮点数分解成整数部分和小数部分字符串
- @param num 需要被分解的浮点数
- @return 分解出来的小数部分和整数部分,第一个数组元素是整数部分,第二个数组元素是小数部分
- */
- public String[] divide(double num)
- {
- long zheng =(long)num;
- long xiao =Math.round((num - zheng)*100) ;
- return new String []{zheng +"",String.valueOf(xiao)};
- }
- /**
- 将一个四位数字字符串转换成汉字字符串
- @param numStr 需要被转换的数字字符串
- @return 四位数字的字符串被转换成汉子字符串
- */
- public String toHanstr(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[numLen - 2 -i];//这里的unitArr[numLen - 2 -i]是怎么得出来的,想不出是什么原因,求解释,谢谢啦!
- else
- result +=hanArr[num];
- }
- return result;
- }
- public static void main(String[] args)
- {
- Num2Rmb nr = new Num2Rmb();
- System.out.print(Arrays.toString(nr.divide(236711125.123)));
- System.out.print(nr.toHanstr("6109"));
- }
- }
复制代码
现在明白了,不过不知道昨晚这个贴为什么发布出去 |
|