首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Math.ceil将Java舍入为整数

使用Math.ceil将Java舍入为整数
EN

Stack Overflow用户
提问于 2011-08-22 00:02:10
回答 11查看 172.4K关注 0票数 115
代码语言:javascript
复制
int total = (int) Math.ceil(157/32);

为什么它仍然返回4?157/32 = 4.90625,我需要四舍五入,我已经看过了,这似乎是正确的方法。

我尝试将total作为double类型,但得到了4.0。

我做错了什么?

EN

回答 11

Stack Overflow用户

发布于 2011-08-22 00:03:10

157/32为int/int,这会导致int

尝试使用双字面量- 157/32d,它是int/double,这将产生一个double

票数 62
EN

Stack Overflow用户

发布于 2011-08-22 00:09:27

157/32是一个整数除法,因为除非另外使用后缀指定,否则所有的数字文字都是整数(d表示双精度,l表示长整型)

除法向下舍入(到4),然后转换为双精度(4.0),然后向上舍入(到4.0)

如果你使用一个变量,你可以避免这种情况

代码语言:javascript
复制
double a1=157;
double a2=32;
int total = (int) Math.ceil(a1/a2);
票数 36
EN

Stack Overflow用户

发布于 2013-03-21 16:30:07

代码语言:javascript
复制
int total = (int) Math.ceil((double)157/32);
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7139382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档