当前位置: 代码迷 >> Java Web开发 >> 小有关问题吧。int 变化
  详细解决方案

小有关问题吧。int 变化

热度:630   发布时间:2016-04-17 12:18:46.0
小问题吧。。。。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设置输出的格式
  相关解决方案