java ceil_Java使用Math.ceil舍入为一个int
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相关推荐
- math ceil函数python_Python ceil函数
Python ceil函数 最后更新于:2020-03-29 09:57:36 python ceil 内置函数和 int 函数有点类似,计算的结果都是得到一个整数,向上取整: 一.ceil函数简介 ...
- Java中Math.ceil()方法具有什么功能呢?
转自: Java中Math.ceil()方法具有什么功能呢? 下文笔者将讲述Math.ceil()方法的功能说明,如下所示: Math.ceil()方法功能:将一个数向上舍入,返回的数大于或等于参数值 ...
- 【韩老师零基础30天学会Java 09】Math Arrays 数组拷贝 自然排序 System BigDecimal 银行家算法舍入 日期类LocalDateTime转换 String翻转
Math abs绝对值 pow求幂 ceil向上取整 floor向下取整 round四舍五入 sqrt求开方 random求随机数 思考: 请写出获取a-b之间的一个随机整数,a,b均为整数?2-7 ...
- 为什么在Java 6上Math.round(0.499999999999999917)舍入为1
总览 错误表示错误和算术舍入错误有两种类型,它们在浮点计算中很常见. 在此简单示例中,这两个错误组合在一起,在Java 6中Math.round(0.4999999999999999999917)舍入 ...
- java中math.ceil用法_[Java教程]关于Math类的round、floor、ceil三个方法
[Java教程]关于Math类的round.floor.ceil三个方法 0 2014-05-06 16:00:08 一.Math类这三个方法的简介 1.round():取最接近的值. 对于这个方法, ...
- Java中的向上取整 Math.ceil(double)
在调外部接口获取列表数据时, 需要判断是否已经取完了所有的值,因此需要用到向上取整. Math.ceil()函数就是向上取整,即取大于参数的最小整数值. 只要参数有小数,都会去掉小数位,将整数位加一( ...
- java如何输出双精度数,为什么Math.floor会返回一个双精度数?
问题 官方javadocsays这个Math.floor返回一个"等于数学整数"的double,但是为什么它不能返回一个int? #1 热门回答(69 赞) 根据相同的javado ...
- java向上取整函数_java取整函数,向上取整函数Math.ceil()
你知道java取整函数要怎样实现吗?下面要给大家分享的是java向上取整函数的相关内容,一起来了解一下具体的方法吧! java向上取整函数Math.ceil():double dividend = 7 ...
- java 向上取整方法 Math.ceil() 用法、源码分析
刷题用到了,正好好好看看源码. 用法 Math.ceil() 返回值.参数均为double类型, 如果参数为int类型,idea不会报错,但是方法同时不会向上取整. 参数为int类型时,Math.ce ...
最新文章
- 那些年送出去的交互方案-微博篇
- An ffmpeg and SDL Tutorial
- shiro前后端分离_为什么要前后端分离?前后端分离的优点是什么?
- 问题 G: 编写函数:数组的排序 (Append Code)
- MacOs终端忽略大小写
- Python编程语言中获取操作系统进程信息的方法
- 微信、QQ防撤回神器,终于被我找到了......
- java swing 圆形图标_java swing 圆形按钮
- Win10系统无法使用VGAPlayer软件播放asf格式和VGA文件
- 任正非创业期间得抑郁症:研发失败我就跳楼
- 关于UGUI如何自动拓展父物体大小
- 亲历NSDI 2013
- 仿QQ好友列表,QListWidget!
- linux ps 被替换文件怎么恢复,被覆盖的文件如何恢复_被替换掉的文件怎么恢复-win7之家...
- 小米笔记本目前仅win10系列系统支持触摸板
- 汽车后市场有酒,元征科技有新故事吗?
- 计算机应用pns,基于PNS系统的计算机实验室管理应用研究——以重庆文理学院为例...
- eyou老系统。。。
- vostro3470装win7_戴尔Latitude 3470笔记本win10怎么改win7系统
- ARM 上电复位过程