实际应用中,经常可以遇到浮点数之间相除然后向上取整,比如客流量与常量之比和店员数之间就应向上取整,多一个人都应该加一名员工。

先谈谈什么是向上取整,什么是向下取整

上取整,不管四舍五入的规则,只要后面有小数前面的整数就加1。
下取整,不管四舍五入的规则,只要后面有小数忽略小数给定。
比如:4.0,调用用向下取整函数,得到的是4。
调用用向上取整函数,得到的是5。
因为后面有小数0也是

java中向上取整的方法

  1. 三目运算符
x / y + (x % y != 0 ? 1 : 0);
  1. Math.ceil()方法
Math.ceil() 返回值、参数均为double类型, 如果参数为int类型,
idea不会报错,但是方法同时不会向上取整。参数为int类型时,Math.ceil(3*1.0 / 2)。
        int ceil0 = (int)Math.ceil(26.6/ 3.8);double ceil1 =26.6/3.8;System.out.println("ceil0==="+ceil0);System.out.println("ceil1==="+ceil1);
ceil0===8
ceil1===7.000000000000001

那这就会出现一个问题,26.6/ 3.8因为浮点数的精度问题会在小数末尾自动进一,导致向上取整是出错,实际应用中则会浪费人力。

解决方法:控制浮点数的精度再进行向上取整。

        DecimalFormat format = new DecimalFormat("#.0");  //控制精度double c=26.6/ 3.8;String s = format.format(c);double v = Double.parseDouble(s);int ceil =((v-(int)(c))==0?(int)(c):(int)Math.ceil(c));System.out.println(ceil);
7
7.0

解决java中浮点数相除向上取整出错的方法相关推荐

  1. Java两整数相除向上取整

    前言:Java中两个整数相除,如果不能整除,默认是向下取整的.例如:11 除以 3 的结果是 3.然而,某些情况下(eg. 把11个糖果,每3个分一堆,不足三个也分成一堆,可以分几堆?),我们需要向上 ...

  2. Java int类型的除法 向上取整 向下取整 保留小数位数

    今天做了一道计算题,用到整数相除的向上取整,突然卡住了.然后查询并试用了如下方法. 一.三目运算法(向上 / 向下取整 快捷.准确) 两个int型 a.b,a / b 向上取整.可以使用 a / b ...

  3. java int相除向上取整_java实战项目常用类,Date、Calendar、BigDecimal、Math、UUID

    Java开发中经常用到的类和方法,以下主要就日期是时间处理.金融数字处理.数学计算.随机数.MD5加密等. java.util.Date类 java.util 包提供了 Date 类来封装当前的日期和 ...

  4. java 为什么 X/Y的向上取整可以用(X+Y-1)/Y导出

    int型数据相除默认会向下取整,如果我们希望对某个除式(x/y)的结果向上取整, 1.可以使用 工具类Math中的静态方法ceil() 2.可以使用 也可以使用(x+y-1)/y的结果 这个公式的原理 ...

  5. Java中数字的四舍五入和取整

    Java中对数字进行四舍五入或取整处理经常使用Math库中的三个方法: ceil floor round 1 ceil 向上取整 ceil英文释义:天花板.天花板在上面,所以是向上取整,好记了. Ma ...

  6. java(double/float)向上取整,向下取整,四舍五入

    向上取整:Math.ceil(double a)  向下取整:Math.floor(double a)  四舍五入取整:Math.round(double a) 1.向输出上取整 public sta ...

  7. java int相除向上取整_Java基础篇——Java运算符

    Java运算符按功能可分为:算数运算符.关系运算符.逻辑运算符.位运算符.赋值运算符和条件运算符. 算数运算符 算术运算符包括通常的加(+).减(-).乘(*).除(/).取模(%),完成整数型和浮点 ...

  8. php浮点转int少1,PHP中浮点数计算比较及取整不准确的解决方法

    显然在这里,实际上作为浮点型数据,其精度已经损失了一部分,达不到完全精确.所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等.需要说明的是,这不是PHP的问题,而是计算机内部 ...

  9. java int相除向上取整_Java工程师(4).运算符

    什么是运算符 运算符可以对两个变量的值执行运算,运算过程由CPU完成. 都有哪几类运算符 Java中的运算符主要包含以下几类: 算术运算符 赋值运算符 关系运算符 逻辑运算符 算术运算符 算术运算符用 ...

最新文章

  1. Lua 数据类型介绍
  2. 项目开发过程中遇到的一些问题和解决办法(逐渐添加)
  3. jquery效果 窗口弹出案例
  4. Shell脚本实现简单分割字符串
  5. 真正实时随机数的实现C++ _timeb _ftime(转)
  6. apache2.2.15与PHP5.3.3安装设置完成后,apache启动失败
  7. 字体乱码的时候,可以使用英文下的写法
  8. CXF整合Spring开发WebService
  9. Fedora 14常规娱乐软件
  10. 抖音上热门的六大规律
  11. 教你怎么快速读出python numpy中给定的array的shape
  12. 设计,构建线框图和对Android应用进行原型制作:第1部分
  13. 教你六种方式实现聊天室
  14. 一个新手的评价---人机交互方面(有些不搭题
  15. 蓍草占卜Python法
  16. TESRA旗下InFlex计算平台使用流程
  17. unity 打砖块—休闲小游戏,摸鱼必备(完整代码)
  18. Web大学生网页作业成品 基于HTML+CSS+JavaScript个人简历介绍 学生个人网站作业设计代做 学生个人网页设计作品
  19. win7设置计算机临时用户,解决win7提示“您已使用临时配置文件登陆”的方案
  20. LA-PEG2000-MAL,硫辛酸和马来酰亚胺修饰的线性杂双功能PEGLipoic acid-PEG2k-Maleimide

热门文章

  1. android elf 加固_Android so加固的简单脱壳
  2. Android系统的三种分屏显示模式
  3. 爱因斯坦的幸福生活公式
  4. 魔兽世界地图插件制作代码、
  5. Shiro教程(七)Shiro Session共享配置以及实现
  6. typeScript学习(二)
  7. matlab中怎么表示几次方,用while 语句编写程式,k=1+2+4+8+…+2的62次方+2的63次方matlab中...
  8. R语言实战应用精讲50篇(三十五)-R语言实现xgboost回归(附R语言代码)
  9. 反编译 jdk1.8 工具 [Procyon-Decompiler]
  10. 2150: 部落战争