我正在做以下事情:
SELECT round(35418.8, -2) FROM compa_8039
结果是:35400
在java中我必须得到相同的结果,但我不能。
你如何在java中做到这一点,因为值等于35418.8?
答案 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