日期:2014-05-20  浏览次数:20790 次

java金额格式化
rt。
1.在java中我想对金额进行格式化

2.两种情况

2.1 少于100
String money="10";

经过转换之后,输入为“0.10”(元).

2.2 大于100
String money="900";

经过转换之后,输入为“9.00”(元).


这是我之前写的,但是少于100就有问题了:
public String getDecimalFormat(String str){
Integer initValue=0;
String outStr = "";
if(str!=null&&!"".equals(str.trim())){
initValue=Integer.parseInt(str);
Integer yuanValue=initValue/100;
DecimalFormat   fmt   =   new   DecimalFormat("##,###,###,###,###.00");  
double d;
try {
d = Double.parseDouble(String.valueOf(yuanValue));
outStr = fmt.format(d);
} catch (Exception e) {
e.printStackTrace();
}
}
return outStr;
}


Java 格式化 String

------解决方案--------------------

String str="10";
Double initValue=0D;
        String outStr = "";
        if(str!=null&&!"".equals(str.trim())){
            initValue= Double.parseDouble(str);
            Double yuanValue=initValue/100;
            System.out.println(yuanValue);
            DecimalFormat   fmt   =   new   DecimalFormat("##,###,###,###,###0.00");  
            double d;
            try {
                d = Double.parseDouble(String.valueOf(yuanValue));
                outStr = fmt.format(d);
                System.out.println(outStr);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

------解决方案--------------------
"##,###,###,###,##0.00
------解决方案--------------------

public static String getDecimalFormat(String str){ 
        double initValue=0; 
        String outStr = ""; 
        if(str!=null&&!"".equals(str.trim())){ 
            initValue=Double.parseDouble(str); 
            double yuanValue=initValue/100; //用double不会丢掉小数点后面的