我已经写好了,谢谢,但是还有想问一下各位高手,为什么在类里面已经写好的数字3的繁体几种转换,但是输出为excel 文件的时候,怎么它的繁体成了问号,而其他数字的繁体却能正常显示,是否是因为没有码去解释繁体三吗??
解决方案 »
- struts2+spring3+ibatis下面统一处理异常信息并跳转到固定页面处理展示信息
- tomcat运行一段时间就挂了
- 关于网银开发 跪求高手相助
- jsf页面提交就报错!使用seam+jsf。问题可能出在哪?求助。
- struts框架中怎么做报表呢,action中总报错
- 关于oracle的JDBC游标操作
- (高分讨论)cpu占用99%的原因,请大家探讨
- fastjson的JSONObject的问题
- 在局域网之内同步每台机器的逻辑时间保持一致,有什么好点的建议没有?
- 关于weblogic中自带的ejb的问题
- tomcat安装问题,郁闷中
- javax.servlet.ServletException: Exception initializing application data source dataSource哪里错了
{
//大写数字的数组
String as[] = {
"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"
};
//定义大写货币单位的排列数组
String as1[] = {
"仟", "佰", "拾", "万", "仟", "佰", "拾", "亿", "仟", "佰",
"拾", "万", "仟", "佰", "拾", "元", "角", "分"
}; String as2[] = new String[40];
String as3[] = new String[40];
double d1 = 0.0D;
int ai[] = new int[20];
boolean flag = false;
boolean flag1 = false;
boolean flag2 = false;
boolean flag3 = false;
double d4 = 1000000000000000D;
StringBuffer stringbuffer = new StringBuffer("");
String s;
//判断待转换金额是否等于零
if(d == 0.0D) {
s = "零元整";
}
else{
//将小数点删除
//出错点--------------------将d *= 100D 改为 d = d*10*10就OK了
//d *= 100D;
d = d*1000000/10000;
//获得d4的数量级,即d所在的数量级(如:d为1200098.0,d4为1000000)
for(; d4 >= 1.0D; d4 /= 10D){
double d2 = d / d4;
if(d2 >= 1.0D)
break;
} int i;
//将d值按位进行截取并存放到数组中
for(i = 0; d4 >= 1.0D; i++){
//获得d整除后的值,如1.200098
double d3 = d / d4;
//System.out.println(d+"/"+d4);
//截取整数并放到数组中,如1,2,0,....
ai[i] = (int)d3;
//取d余数,如200098,00098,...
d %= d4;
//整除,将d4的数量级减小,如:10000,1000,100,...
d4 /= 10D;
}
//获得数值的长度
int i1 = i;
//转换后大写金额的长度
int k = i1 * 2 - 1;
//货币单位数组的长度
int l = 17;
for(i = i1 - 1; i >= 0; i--){
//将货币单位加到数组中,从数组中的最后一个值开始,如:分,角,...
as2[k] = as1[l];
k--;
//将金额转换成大写并放到数组中,如,玖,捌,零,......
as2[k] = as[ai[i]];
k--;
l--;
} i1 *= 2;
k = 0;
l = 0;
for(i = 0; i < i1; i++){
//判断数组中是否有零的值
if(as2[i].compareTo("零") == 0){
//判断是否到数组的最后一位
if(as2[i + 1] != null){
//判断零后的字符是否为万,亿,元三个字符
if(as2[i + 1].compareTo("万") != 0 && as2[i + 1].compareTo("亿") != 0 && as2[i + 1].compareTo("元") != 0){
as3[k] = as2[i];
i++;
k++;
}
else{
i++;
as3[k] = as2[i];
k++;
}
}
}
else{
//生成新的数组,如,壹万捌千元整
as3[k] = as2[i];
k++;
}
}
for(k = 0; as3[k] != null; k++){
//将金额数组中的零值替换为"_"
if(as3[k].compareTo("零") == 0 && as3[k + 1] != null && (as3[k + 1].compareTo("万") == 0 || as3[k + 1].compareTo("亿") == 0 || as3[k + 1].compareTo("元") == 0 || as3[k + 1].compareTo("零") == 0))
as3[k] = "_";
} //将金额数组中的倒数第二个的零值替换为"_"
if(as3[k - 1].compareTo("零") == 0)
as3[k - 1] = "_"; k = 0;
i = 0; for(; as3[k] != null; k++){
//将数组中的"_"删除
if(as3[k].compareTo("_") != 0)
{
as2[i] = as3[k];
i++;
}
} i1 = i;
String ss ="" ;
//生成金额转换后的大写字符串
for(int j = 0; j < i1; j++)
{
stringbuffer.append(as2[j]);
if(as2[j].compareTo("亿") == 0 && as2[j + 1].compareTo("万") == 0)
as2[j + 1] = "";
} s = stringbuffer.append("整").toString();
}
return s;
}
public static void main(String[] arg){
UtilFinan t = new UtilFinan();
String s = t.toCaption(165651.80);
System.out.println(s);
}
}
看看能不能用上!!
http://dev.csdn.net/article/26/26306.shtm