例子
我项目中有一句代码:
int circleNum = (int)Math.ceil(faceppFaceUserList.size()/950);
然而,在我调试的时候,结果总是比预想结果少1
甩个例子 :
double a = 3/950; double b = Math.ceil(a); System.out.println(a); System.out.println(b);
上面例子运行的结果 :
0.0 0.0
原因
在”3/950″中,
数字”3″是int类型
数字”950″是int类型
所以算式”3/950″也是一个int类型,
所以小数部分会被省略去掉,结果为0
变量b相当于是int类型强制转成double类型
正确方式
double a = (double)3/(double)950;
double b = Math.ceil(a);
System.out.println(a);
System.out.println(b);