首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java金额格式化解决思路

2013-04-12 
java金额格式化rt。1.在java中我想对金额进行格式化2.两种情况2.1 少于100String money10经过转换之后,

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不会丢掉小数点后面的


            DecimalFormat   fmt   =   new   DecimalFormat("##,###,###,###,##0.00");   
            double d; 
            try { 
                d = Double.parseDouble(String.valueOf(yuanValue)); 
                outStr = fmt.format(d); 
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
        } 
        return outStr; 
    }


[解决办法]
你好我想问下 d = Double.parseDouble(String.valueOf(yuanValue));这句话的做用?
[解决办法]
这时候 你最好 参看下jdk文档 .   

另外.我推荐你直接用分操作计算   同时.   /100  这类问题.最好办的方法 是  直接字符串最后两位截下来. 加个点.   

当然你是想研究精度问题.那么你已经在做了.  加油
[解决办法]
转换成double或float后再通过工具类DecimalFormat格式化。
[解决办法]
lz需要恶补基础知识:
1 小于100出问题,你大于100都出问题,请找本基础书,看看什么叫“整除”
2 显示在屏幕上的,那个叫“输出”,否则干嘛叫System.out.....,你键盘打的,叫“输入”,否则干嘛叫“输入法”

另外,"#,##0.00",注意小数点前面的那个0,如果你用#,那么0.1会变成.10而不是通常你期望的0.10。而前面那么多#,###,###是多余的,只要一个逗号,能够明确表明多少数字一节即可。

最后,精确计算时,不要使用float或double

热点排行