金额转换收藏以后可能有用啊

来源:互联网 发布:什么是sql注入 编辑:程序博客网 时间:2024/06/05 23:44
 
public static String changeToBig(double value) {
        
char[] hunit = '''''' }//段内位置表示   
        char[] vunit = '''亿' }//段名表示   
        char[] digit = '''''''''''''''''''' }//数字表示   
        long midVal = (long) (value * 100); //转化成整形   
        String valStr = String.valueOf(midVal); //转化成字符串   
        String head = valStr.substring(0, valStr.length() - 2); //取整数部分   
        String rail = valStr.substring(valStr.length() - 2); //取小数部分   

        String prefix 
= ""//整数部分转化的结果   
        String suffix = ""//小数部分转化的结果   
        
//处理小数点后面的数   
        if (rail.equals("00")) //如果小数部分为0   
            suffix = "";
        }
 else {
            suffix 
= digit[rail.charAt(0- '0'+ ""
                    
+ digit[rail.charAt(1- '0'+ ""//否则把角分转化出来   
        }

        
//处理小数点前面的数   
        char[] chDig = head.toCharArray(); //把整数部分转化成字符数组   
        char zero = '0'//标志'0'表示出现过0   
        byte zeroSerNum = 0//连续出现0的次数   
        for (int i = 0; i < chDig.length; i++//循环处理每个数字   
            int idx = (chDig.length - i - 1% 4//取段内位置   
            int vidx = (chDig.length - i - 1/ 4//取段位置   
            if (chDig[i] == '0'//如果当前字符是0   
                zeroSerNum++//连续0次数递增   
                if (zero == '0'//标志   
                    zero = digit[0];
                }
 else if (idx == 0 && vidx > 0 && zeroSerNum < 4{
                    prefix 
+= vunit[vidx - 1];
                    zero 
= '0';
                }

                
continue;
            }

            zeroSerNum 
= 0//连续0次数清零   
            if (zero != '0'//如果标志不为0,则加上,例如万,亿什么的   
                prefix += zero;
                zero 
= '0';
            }

            prefix 
+= digit[chDig[i] - '0']; //转化该数字表示   
            if (idx > 0)
                prefix 
+= hunit[idx - 1];
            
if (idx == 0 && vidx > 0{
                prefix 
+= vunit[vidx - 1]; //段结束位置应该加上段名如万,亿   
            }

        }


        
if (prefix.length() > 0)
            prefix 
+= ''//如果整数部分存在,则有圆的字样   
        return prefix + suffix; //返回正确表示   
    }
原创粉丝点击