int total = (int) Math.ceil(157/32);
为什么它仍然返回4?157/32 = 4.90625
,我需要四舍五入,我已经看过了,这似乎是正确的方法。
我尝试将total
作为double
类型,但得到了4.0。
我做错了什么?
发布于 2011-08-22 00:03:10
157/32为int/int
,这会导致int
。
尝试使用双字面量- 157/32d
,它是int/double
,这将产生一个double
。
发布于 2011-08-22 00:09:27
157/32
是一个整数除法,因为除非另外使用后缀指定,否则所有的数字文字都是整数(d
表示双精度,l
表示长整型)
除法向下舍入(到4),然后转换为双精度(4.0),然后向上舍入(到4.0)
如果你使用一个变量,你可以避免这种情况
double a1=157;
double a2=32;
int total = (int) Math.ceil(a1/a2);
发布于 2013-03-21 16:30:07
int total = (int) Math.ceil((double)157/32);
https://stackoverflow.com/questions/7139382
复制相似问题