您的位置:程序门 -> java -> j2se / 基础类



50分求一个简单问题!!java中如何对一个double变量在十位数四舍五入?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


50分求一个简单问题!!java中如何对一个double变量在十位数四舍五入?[已结贴,结贴人:toli]
发表于:2007-03-30 12:06:37 楼主
例如:  
789           结果为790
1234.20   结果为1230
2               结果为0
8               结果为10

菜鸟非常感谢大家!
发表于:2007-03-30 12:09:411楼 得分:5
bigdecimal这个类好像可以实现吧,没试过。
发表于:2007-03-30 12:14:232楼 得分:0
如果是1234.80,这个是多少?不管0.80了么?
发表于:2007-03-30 12:15:163楼 得分:10
public   static   double   myround(double   d)   {
return   math.round(d/10)   *   10;
}
发表于:2007-03-30 12:19:184楼 得分:5
double   a;
if(a%10   > =50){
    进一位
}
else{
    ...
}
发表于:2007-03-30 12:24:095楼 得分:10
private   int   roundten(double   db)   {
int   roundedint   =   (int)   math.round(db);

if   (roundedint   %   10   <   5)   {
return   (roundedint   /   10)   *   10;
}

return   (roundedint   /   10)   *   10   +   10;

}

提供测试数据如下:
double   db1   =   1234.20;
double   db2   =   789;
double   db3   =   2;
double   db4   =   8;
double   db5   =   1234.56;

结果如下:
1230
790
0
10
1240
发表于:2007-03-30 12:36:216楼 得分:0
如果不要小数的话,楼上就差不多了吧
发表于:2007-03-30 12:44:197楼 得分:0
dan1980()   (   )   信誉:98         的方法不是更好,需要   dracularking(english   java   group:1306030   welcome   e-javaers)   (   )   搞得这么复杂么?
发表于:2007-03-30 12:45:038楼 得分:5
math.round(d/10)   *   10
发表于:2007-03-30 12:49:079楼 得分:5
public   static   int   get(float   a)
{
return   (int)(a/10+0.5)*10;
}

}

结果:
790
1230
0
10
发表于:2007-03-30 13:14:0010楼 得分:5
math.round(d/10)   *   10

不要加int类型强制转换,防溢出
发表于:2007-03-30 13:22:1711楼 得分:0
嗯   对   math.round(d/10)   *   10
发表于:2007-03-30 13:34:5912楼 得分:5
/**
      *   四舍五入
      *   @param   dsource
      *   @return
      */
    public   static   int   getround(double   dsource)   {
        int   iround;
//bigdecimal的构造函数参数类型是double
        bigdecimal   desource   =   new   bigdecimal(dsource);
//desource.setscale(0,bigdecimal.round_half_up)   返回值类型   bigdecimal
//intvalue()   方法将bigdecimal转化为int
        iround   =   desource.setscale(0,   bigdecimal.round_half_up).intvalue();
        return   iround;
    }

}
发表于:2007-03-30 14:07:1513楼 得分:0
一个表达式即可:((int)(a+5))/10*10
发表于:2007-03-30 14:56:2314楼 得分:0
三楼的方法最好
发表于:2007-03-30 15:12:2715楼 得分:0
谢谢大家!问题解决了,结贴。


快速检索

最新资讯
热门点击