java数字转换

来源:互联网 发布:用js设置秒表 编辑:程序博客网 时间:2024/06/06 14:14

 /**
     * 格式化数字,例如:12345转化为12,345
     * 
     * @param dValue
     *            被格式化的数值
     * @param iScale
     *            小数点后保留位数,不足补0
     * @return
     */
    public static String formatNumber(double dValue, int iScale) {//假如保留3为小数
    DecimalFormat df = null;
    StringBuffer sPattern = new StringBuffer(",##0");
    if (iScale > 0) {
    sPattern.append(".");//sPattern=",##0.";
    for (int i = 0; i < iScale; i++) {
    sPattern.append("0");//退出for后sPattern=",##0.000";
    }
    }
    df = new DecimalFormat(sPattern.toString());//等价于new DecimalFormat(",##0.000");
    String str = df.format(dValue);//格式化传入的double类型参数dValue
    return str;//返回格式化后的String类型的dValue
    }
    
    public static String formatNumber(double dValue, String pattern) {//传入参数列1234.56  ",##0.000"
    DecimalFormat df = null;
    df = new DecimalFormat(pattern);//new DecimalFormat(",##0.000");
    String str = df.format(dValue);
    return str;//1,234.560
    }
    
    public static String formatNumber(long lValue) {
    return formatNumber((double) lValue, 0);//调用了上面的方法传入小数位为0并把long强转double,返回String类型的
    }
    
    /**
* 解析格式化的字符串,转化为数值,例如:12,345.00转化为12345

* @param text
*            被格式化的数值
* @return
*/
public static double parseNumber(String text) {
int index = text.indexOf(",");
String sbNumber = "";
while (index != -1) {//循环搜寻,并去除,号   这个算法好理解但是感觉用正则表达式会好些
sbNumber += text.substring(0, index);//下面用一个正则的举例str=str.replaceAll(",","");
text = text.substring(index + 1, text.length());
index = text.indexOf(",");
}
sbNumber += text;
return Double.parseDouble(sbNumber);
}

/**
*  上面那个方法用正则表达式来实现
* 解析格式化的字符串,转化为数值,例如:12,345.00转化为12345

* @param text
*            被格式化的数值
* @return
*/
public static double parseNumber1(String text){
text=text.replaceAll(",","");//替换字符串中的所有逗号
return Double.parseDouble(text);
}
public static long parseLong(String text) {
int index = text.indexOf(",");
String sbNumber = "";
//同上,下面这段代码可以用正则表达式替换
while (index != -1) {
sbNumber += text.substring(0, index);
text = text.substring(index + 1, text.length());
index = text.indexOf(",");
}
sbNumber += text;
System.out.println(sbNumber);
return Long.parseLong(sbNumber);
}
/*
*该方法作用是把double的number转为String且不用科学计数法的方式
*
*/
    public static String toString(double number) {
NumberFormat format = NumberFormat.getInstance();


format.setGroupingUsed(false);


return format.format(number);
    }


/**

     * 中文金额的大写转换的包装函数
     * @param String 金额
     * @return String
     */
    public static String makeUpperCaseSum(String je) {
        return makeUpperCaseSum(Double.parseDouble(je));
    }
    /**
     * 中文金额的大写转换
     * @param double 金额
     * @return String
     */
    public static String makeUpperCaseSum(double je) {


        if (je < 0)
            je *= -1;


        final String[] upper_number =
            { "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "拾" };
        final String[] number_dw =
            {
                "",
                "圆",
                "拾",
                "佰",
                "仟",
                "万",
                "拾",
                "佰",
                "仟",
                "亿",
                "拾",
                "佰",
                "仟",
                "万" };
        String operate, upper_str, vsDx;
        int i, j, point_pos, int_len;
        if (je < 0.01)
            return "零圆整";


        upper_str = "";


        DecimalFormat aFormat =
            (DecimalFormat) new java.text.DecimalFormat("##0.00");
        operate = new String(aFormat.format(je));


        point_pos = operate.indexOf(".");
        if (point_pos == -1)
            int_len = operate.length();
        else {
            if (operate.length() - point_pos <= 2)
                operate += "0";
            int_len = point_pos;
        }
        if (int_len > number_dw.length - 1)
            return "too long !!!";


        if (je > 0) {
            for (i = 0; i < int_len; i++) {
                j = int_len - i;
                if (i > 0 && "0".equals(operate.substring(i, i + 1))) {
                    String sss = number_dw[j];
                    if (!"0".equals(operate.substring(i - 1, i))
                        && !"万".equals(sss)
                        && !"亿".equals(sss)
                        && !"圆".equals(sss))
                        upper_str = upper_str + "零";
                    else if (
                        "万".equals(number_dw[j])
                            || "亿".equals(number_dw[j])
                            || "圆".equals(number_dw[j])) {
                        int ssss = upper_str.length() - 1;
                        String sssss = upper_str.substring(ssss);
                        if (!sssss.equals("零")) {
                            if (!upper_str
                                .substring(upper_str.length() - 1)
                                .equals("亿")
                                && !upper_str.substring(
                                    upper_str.length() - 1).equals(
                                    "万")) {
                                if (upper_str
                                    .substring(upper_str.length() - 1)
                                    .equals("拾")
                                    && !number_dw[j].equals("圆"))
                                    upper_str = upper_str + number_dw[j] + "零";
                                else
                                    upper_str = upper_str + number_dw[j];
                            }
                        } else {
                            if (!upper_str
                                .substring(
                                    upper_str.length() - 2,
                                    upper_str.length() - 1)
                                .equals("亿")
                                && !upper_str.substring(
                                    upper_str.length() - 2,
                                    upper_str.length() - 1).equals(
                                    "万")
                                || number_dw[j].equals("圆")) {
                                upper_str =
                                    upper_str.substring(
                                        0,
                                        upper_str.length() - 1)
                                        + number_dw[j];
                                if (!number_dw[j].equals("圆")) {
                                    upper_str = upper_str + "零";
                                }
                            }
                        }
                    }
                } else {
                    if (!operate.substring(i, i + 1).equals("0")) {
                        int k = Integer.parseInt(operate.substring(i, i + 1));
                        upper_str =
                            upper_str + upper_number[k - 1] + number_dw[j];
                    }
                }
            }
        }
        if (point_pos > 0) {
            if (!operate.substring(point_pos + 1, point_pos + 2).equals("0")) {
                int k =
                    Integer.parseInt(
                        operate.substring(point_pos + 1, point_pos + 2));
                upper_str = upper_str + upper_number[k - 1] + "角";
                if (!operate
                    .substring(point_pos + 2, point_pos + 3)
                    .equals("0")) {
                    int m =
                        Integer.parseInt(
                            operate.substring(point_pos + 2, point_pos + 3));
                    upper_str = upper_str + upper_number[m - 1] + "分";
                }
            } else {
                if (!operate
                    .substring(point_pos + 2, point_pos + 3)
                    .equals("0")) {
                    int k =
                        Integer.parseInt(
                            operate.substring(point_pos + 2, point_pos + 3));
                    upper_str = upper_str + "零" + upper_number[k - 1] + "分";
                }
            }
        }


        if (!upper_str.substring(upper_str.length() - 1).equals("分")
            && !upper_str.equals(""))
            upper_str = upper_str + "整";


        return upper_str;
    }
原创粉丝点击