你如何从35418.8获得35400?

时间:2014-12-22 13:18:27

标签: java

我正在做以下事情:

SELECT round(35418.8, -2) FROM compa_8039 

结果是:35400

在java中我必须得到相同的结果,但我不能。

你如何在java中做到这一点,因为值等于35418.8?

2 个答案:

答案 0 :(得分:1)

  

ROUND(X),ROUND(X,D)

     

将参数X舍入到D小数位。舍入算法取决于数据类型>如果未指定,则默认为0。 D可以是负数,导致D数字左边   值X的小数点变为零。

http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_round

所以35418.8小数点左边有两个位置是35400

编辑:

很抱歉在java中执行此操作

public class HelloWorld{

     public static void main(String []args){
       Double x=35418.18;
        int representation=(x.intValue()/100)*100;
        System.out.println(representation);
     }
}

答案 1 :(得分:0)

使用BigDecimal类及其setScale方法可以实现同样的目的:

BigDecimal bd = BigDecimal.valueOf(35418.8);
bd = bd.setScale(-2, BigDecimal.ROUND_FLOOR);
int result = bd.intValue();

System.out.println(result);

这将打印值:

35400