java 数字转大写的小程序
/**
* 四舍五入算法
* @param v 要进行四舍五入的数字
* @param scale 要舍入的位数
* @return 四舍五入后的数字
*/
public static double round(double v,int scale)
{
if(scale<0){
throw new IllegalArgumentException("The scale must be a positive integer or zero");
}
BigDecimal b = new BigDecimal(Double.toString(v));
BigDecimal one = new BigDecimal("1");
return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();
}
/**
* 将长整型的数字转换为中文数字
* @param num 要转换的数
* @param start 迭代起始点,调用时输入0 即可
* @param isShowUnit 是否显示单位 “百” “十” 等
* @return 返回转换好的中文数字
*/
private static String getParse(Long num,int start,boolean isShowUnit){
StringBuilder sb = new StringBuilder();
if( num < 10l){
return charMap.get(num);
}
Long quot = num/ls[start];
while( quot == 0 && start < ls.length)
{
start++;
quot = num/ls[start];
}
if(start < ls.length){
Long odd = 0l;
//商大于零
if(quot >0 ){
sb.append(getParse(quot,start,isShowUnit));
if(isShowUnit) sb.append(charMap.get(ls[start]));
}
//余数大于零
if((odd = num % ls[start])>0){
if(odd < ls[start+1] )
sb.append(charMap.get(0l));
sb.append(getParse(odd,start+1,isShowUnit));
}
}
return sb.toString();
}
public static void main(String[] args) {
char a = "9".charAt(0);
int b = a;
double d = 1021.5641;
Double dd= d;
System.out.println(parse("111002.244998"));
}
}
继续加油努力 期待ing
很不错哦