Java将浮点数转换成人民币读法字符串
import java.util.Scanner;
public class Num2Rmb {
private String[] hanArr = {"零" , "壹" , "贰" , "叁" , "肆" , "伍" , "陆" , "柒" , "捌" , "玖" };
private String[] unitArr = {"十" , "百" , "千" , "万"};
private String toHanStr(double x)
{
String result = "";
int k = (int)x,c = k ;
int m = (int)((x-k)*100) ;
int a = m/10,b = m%10;//转换浮点数;
int count = 0;
while (c != 0)
{
count++;
c /= 10;
} //计算整数位数,并去掉最高位零
int[] zheng = new int[count];
for(int i = 0 , len = zheng.length ; i< len; i++)
{
int j = 10 ;
zheng[i] = k % j ;
j *= 10;k /= 10;
//System.out.println(zheng[i]);
}
for(int i = zheng.length-1 ; i >0; i--)
{
if( i!= 0 && zheng[i]!=0)
result += hanArr[zheng[i]] + unitArr[i-1];
else if( zheng[i+1] == 0)
continue;
else
result += hanArr[zheng[i]];
}
if(zheng[0] != 0)
result += hanArr[zheng[0]];
return result+"元"+hanArr[a]+"角"+hanArr[b]+"分";
}
public static void main(String[] args) {
Num2Rmb nr = new Num2Rmb();
Scanner scanner = new Scanner(System.in);
double x = scanner.nextDouble();
System.out.println(nr.toHanStr(x));
}
}