怎么把字符串"99999999.9"格式化成#99,999,999.9

解决方案 »

  1.   

    这个方法可以
     private String parseNumber(String inputStr,String prefix){
        String[] strs = inputStr.split("\\.");
        String intStr = new StringBuffer(strs[0]).toString();
        String result = "";
        for(int i = 0 ; i < intStr.length() ; i = i + 3){
          if(i + 3 >= intStr.length()){
            result = result + intStr.substring(i);
          } else {
            result = result + intStr.substring(i,i + 3) + ",";
          }
        }
        result = new StringBuffer(result).reverse().toString();
        if(strs.length == 2 && strs[1].length() > 0){
          result = result + "." + strs[1];
        }
        return prefix + result;
      }
    如:
    public static viod main(String[] args){
       System.out.println(test.parseNumber("9999999999","#"));
       System.out.println(test.parseNumber("999999999999.99","#"));
    }
    结果
    #9,999,999,999
    #999,999,999,999.99
    应该有使用Formatter可以直接转换的方法,我不知道,只能使用这个笨方法了
      

  2.   

    http://www.javaalmanac.com/egs/java.text/FormatNum.html
      

  3.   

    double x = 99999999.9;
    NumberFormat formatter = NumberFormat.getNumberInstance();
    formatter.setMinimumIntegerDigits(1);
    formatter.setMaximumFractionDigits(8);
    String s = formatter.format(x);
    System.out.println("#"+s);
      

  4.   

    java.text.DecimalFormat
     "##,###,###0.0#"
    new DecimalFormat("");
    .format(double)
      

  5.   

    yonghar说的对,这个最简单实用
      

  6.   

    刚取过
    http://www.javaalmanac.com/egs/java.text/FormatNum.html
    很好
    支持 fox_blue(蓝狐)