/**
* 浮点数转成中文
* 以"0"结束的浮点数转成字符串会被忽略
* 只能通过预设小数位数解决
* @author lian
*
*/
public class Demo {
/**
*
* @param f 浮点数
* @param num 预设小数位数
*/
void test(float f,int num){
System.out.print(f+"\t\t"+num+"\t");
String str[]=new String[]{"零","一","二","三","四","五","六","七","八","九"};
String s=String.valueOf(f);//将浮点数(f)转换成字符串,忽略后面"0"
int x=s.indexOf(".");//小数点的索引
int n=s.substring(x+1, s.length()).length();//取得浮点数(f)小数位数,小数位以"0"结束不计
if(n
//浮点数(f)小数位数小于预设小数位数(num),则在字符串后加"0"
n=num-n;
for(int i=0;i
s=s+"0";
}
}
System.out.print("\t"+s);
StringBuffer sb=new StringBuffer("");
for(int i=0;i
String index=String.valueOf(s.charAt(i));
if(index.equals(".")){
sb=sb.append(".");
}else{
sb=sb.append(str[Integer.parseInt(index)]);
}
}
System.out.println("\t\t"+sb);
}
public static void main(String[] args) {
System.out.println("浮点数\t\t预设小数位数\t转换成字符串\t转换成中文");
Demo d=new Demo();
d.test(30.00f,4);//设置小数位为4位,不足4位补"0"
d.test(30.000000f,4);//设置小数位为4位,多余的截取
d.test(500.00500f, 2);//设置小数位为2为,只忽略后面的"0",保留有效位
}
}
运行结果
浮点数预设小数位数转换成字符串转换成中文
30.0430.0000三零.零零零零
30.0430.0000三零.零零零零
500.0052500.005五零零.零零五