日期:2014-05-18  浏览次数:20686 次

小问题吧。。。。int 变化
在JSP页面里,有一个int = 747526
是一个金额来着,我要把它变成748 (千元) 怎么做哈???

------解决方案--------------------
数位数吧,然后再看百位大于等于5的进一
------解决方案--------------------
取道百位数字做一个判断,如果百位数字大于等于零小于5就只显示千位以上
如果大于等于5小于等于9就给千位进一位就行了
------解决方案--------------------
public int toThousand(int i){
if(i>0){
if(i>=1000){
int r=i/1000;
int t=i%1000;
if(t>499) r+=1;
return r;
}
return 1;
}
return 0;
}
------解决方案--------------------
除1000.00,得一long型数
math类里有个四舍五入的方法
------解决方案--------------------
钱的计算用BigDecimal,这样不会存在误差
Java code

    public static void main(String[] args) {
        int i = 747526;
        //变成千元
        double qian = (double)i/1000;
        System.out.println(qian);
        //四舍五入
        BigDecimal bigValue = new BigDecimal(qian);
        double money = bigValue.setScale(0, BigDecimal.ROUND_UP).doubleValue();
        System.out.println(money);
    }

------解决方案--------------------
http://hi.baidu.com/ccraise/blog/item/2c83e0efd79f4015fdfa3ca9.html
------解决方案--------------------
<%
int x= 747526 ;
int y = (int)Math.round(747526/1000.0);
out.println(y+"千元");
%>
------解决方案--------------------
int y = 45345;
if(y%1000>=500){
System.out.println(y/1000+1+"千元");
}else{
System.out.println(y/1000+"千元");
}
------解决方案--------------------
碰到这类问题,楼主应该尝试自己动手做做的,不是很难,有笨方法,当然想学习的更多的话应该去查下API的,或者说是在提问之前自己没有好好的google下!

------解决方案--------------------
可以使用jstl的fmt:formatNumber,通过pattern设置输出的格式