做到一半 遇到了单位转换问题 新手不会转 求大神指导由于是借鉴书上和网上找的 还没完善
import java.util.Arrays;public class Num2Rmb
{
private String[] hanArr = {" 零" , "壹" , "贰" , "叁" , "肆" ,
 "伍" , "陆" , "柒" , "捌" ,"玖"};
private String[] unitArr ={ "拾" , "佰" , "仟"};
//新加入了RMB單位
private String[] unitRmb = {"角" , "分"};
/**
*把一个浮点数分解成整数和小数部分字符串
*@param num 需要分解的浮点数
*@return 分解出来的整数部分和小数部分.第一个数组元素是整数部分,第二个数组元素是小数部分
*/
private String[] divide(double num)
{
//将一个浮点数强制类型转换成long型,即得到他的整数部分
long zheng = (long)num;
//浮点数减去整数部分,得到小数部分,小数部分乘以100后再去整得到2位小数
long xiao = Math.round((num - zheng) * 100);
//提取小數部分,注意當小數的第一位為0的情況
String xiaostr;
if (xiao > 10)
{
xiaostr = String.valueOf(xiao);

else 
{
xiaostr = "0" + String.valueOf(xiao);
}
return new String[]{zheng + "" ,xiaostr};
}
//下面用了2種方法把整数转换成字符串
/**
*把一个四位的数字字符串变成汉字字符串
*@param numStr 需要被转换的四位的数字字符串
*@return 四位的数字字符串被转换成汉字字符串
*/
private String toHanStr(double numStr)
{
//處理整數部分
String[] numStrs = divide(numStr);
String[] numZheng = numStrs[0]; 
String result = "";
int numLenZheng = numZheng.length();
//依次遍历数字字符串的每一位数字
for (int i =0 ; i< numLenZheng ; i++)
{
//把char型数字转换成int型数字,因为他们的ASCII码相差48
//所以char型数字将去48得到int型数字
int num = numZheng.charAt(i) - 48;
//如果不是最后一位数字,而且数字不是零,则需要添加单位(仟,佰,拾)
if (i != numLenZheng - 1 && num != 0)
{
//這裡是和習題一樣從高位取單位
result += hanArr[num] + unitArr[numLenZheng - 2 -  i];
}
else
{
result +=hanArr[num];
}
}
result += "元";
//處理小數部分
String[] numXiao = numStrs[1];
int numLenXiao = numXiao.length();
for (int i =0 ; i < numLenXiao ; i++)
{
int num = numXiao.charAt(i) - 48;
//小數部分直接處理兩位 角,分 就行
if(num != 0)
{
//這裡按順序直接取單位吧
result += hanArr[num] + unitRmb[i];
}
return result;
}
}
public static void main(String[] args)
{
Num2Rmb nr =new Num2Rmb();
/*测试把一个浮点数分解成整数部分和小数部分
 *System.out.println(Arrays.toString(nr.divide(236711125.123)));
 *之前練習的
 */
//测试把一个四位的数字字符串变成汉字字符串
System.out.println(nr.toHanStr("1006.333"));
}}java错误