int total = (int) Math.ceil(157/32);

为什么仍然返回4? 157/32 = 4.90625,我需要四舍五入,我环顾四周,这似乎是正确的方法。

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

我究竟做错了什么?

您正在执行157/32,该操作将两个整数彼此相除,这总是导致四舍五入的整数。因此,(int) Math.ceil(...)没有执行任何操作。有三种可能的解决方案来实现您想要的。我建议使用选项1或选项2。请不要使用选项0。

选项0

将a和b转换为双精度,然后可以根据需要使用除法和Math.ceil。但是,我强烈不鼓励使用这种方法,因为双重除法可能不精确。要阅读有关双精度不精确性的更多信息,请参见此问题。

int n = (int) Math.ceil((double) a / b));

选项1

int n = a / b + ((a % b == 0) ? 0 : 1);

如果a和b都是整数,则始终将a / b设为最低。然后,您有一个内联的if语句女巫检查您是否应该天花板而不是地板。所以+1或+0,如果除法除法运算余数,则需要+1。 a % b == 0检查其余部分。

选项2

此选项很短,但可能不太直观。我认为这种不太直观的方法会比双重除法和比较方法更快:

int n = (a + b - 1) / b;

为了减少溢出的机会,您可以使用以下方法。但是请注意,它不适用于a = 0和b < 1。

java ceil_Java使用Math.ceil舍入为一个int相关推荐

  1. math ceil函数python_Python ceil函数

    Python ceil函数 最后更新于:2020-03-29 09:57:36 python ceil 内置函数和 int 函数有点类似,计算的结果都是得到一个整数,向上取整: 一.ceil函数简介 ...

  2. Java中Math.ceil()方法具有什么功能呢?

    转自: Java中Math.ceil()方法具有什么功能呢? 下文笔者将讲述Math.ceil()方法的功能说明,如下所示: Math.ceil()方法功能:将一个数向上舍入,返回的数大于或等于参数值 ...

  3. 【韩老师零基础30天学会Java 09】Math Arrays 数组拷贝 自然排序 System BigDecimal 银行家算法舍入 日期类LocalDateTime转换 String翻转

    Math abs绝对值 pow求幂 ceil向上取整 floor向下取整 round四舍五入 sqrt求开方 random求随机数 思考: 请写出获取a-b之间的一个随机整数,a,b均为整数?2-7 ...

  4. 为什么在Java 6上Math.round(0.499999999999999917)舍入为1

    总览 错误表示错误和算术舍入错误有两种类型,它们在浮点计算中很常见. 在此简单示例中,这两个错误组合在一起,在Java 6中Math.round(0.4999999999999999999917)舍入 ...

  5. java中math.ceil用法_[Java教程]关于Math类的round、floor、ceil三个方法

    [Java教程]关于Math类的round.floor.ceil三个方法 0 2014-05-06 16:00:08 一.Math类这三个方法的简介 1.round():取最接近的值. 对于这个方法, ...

  6. Java中的向上取整 Math.ceil(double)

    在调外部接口获取列表数据时, 需要判断是否已经取完了所有的值,因此需要用到向上取整. Math.ceil()函数就是向上取整,即取大于参数的最小整数值. 只要参数有小数,都会去掉小数位,将整数位加一( ...

  7. java如何输出双精度数,为什么Math.floor会返回一个双精度数?

    问题 官方javadocsays这个Math.floor返回一个"等于数学整数"的double,但是为什么它不能返回一个int? #1 热门回答(69 赞) 根据相同的javado ...

  8. java向上取整函数_java取整函数,向上取整函数Math.ceil()

    你知道java取整函数要怎样实现吗?下面要给大家分享的是java向上取整函数的相关内容,一起来了解一下具体的方法吧! java向上取整函数Math.ceil():double dividend = 7 ...

  9. java 向上取整方法 Math.ceil() 用法、源码分析

    刷题用到了,正好好好看看源码. 用法 Math.ceil() 返回值.参数均为double类型, 如果参数为int类型,idea不会报错,但是方法同时不会向上取整. 参数为int类型时,Math.ce ...

最新文章

  1. 那些年送出去的交互方案-微博篇
  2. An ffmpeg and SDL Tutorial
  3. shiro前后端分离_为什么要前后端分离?前后端分离的优点是什么?
  4. 问题 G: 编写函数:数组的排序 (Append Code)
  5. MacOs终端忽略大小写
  6. Python编程语言中获取操作系统进程信息的方法
  7. 微信、QQ防撤回神器,终于被我找到了......
  8. java swing 圆形图标_java swing 圆形按钮
  9. Win10系统无法使用VGAPlayer软件播放asf格式和VGA文件
  10. 任正非创业期间得抑郁症:研发失败我就跳楼
  11. 关于UGUI如何自动拓展父物体大小
  12. 亲历NSDI 2013
  13. 仿QQ好友列表,QListWidget!
  14. linux ps 被替换文件怎么恢复,被覆盖的文件如何恢复_被替换掉的文件怎么恢复-win7之家...
  15. 小米笔记本目前仅win10系列系统支持触摸板
  16. 汽车后市场有酒,元征科技有新故事吗?
  17. 计算机应用pns,基于PNS系统的计算机实验室管理应用研究——以重庆文理学院为例...
  18. eyou老系统。。。
  19. vostro3470装win7_戴尔Latitude 3470笔记本win10怎么改win7系统
  20. ARM 上电复位过程

热门文章

  1. IconResource:安卓、IOS、网页等开发图标素材源
  2. Studying Recommendation Algorithms by Graph Analysis
  3. python中if条件语句的代码实例
  4. 记一次投票系统维护以及防止刷票springboot+redis
  5. 微信商城后台服务器在那儿里,第3讲 微信商城云服务器后台创建
  6. Linux系列之soft lockup机制 浅析
  7. Thread--线程创建的三种方式
  8. Android Gradle 技巧之二: 最爱命令行
  9. numpy中linspace用法
  10. 1003a+-*/b