Java中的Math工具类用来完成除+、-、*、/、%等基本运算以外的复杂运算,位于java.lang包下,Math类的构造器全是私有的(private),因此无法创建Math类的对象,Math类的方法全是类方法,可以直接通过类名来调用它们。下面重点介绍Math类中经常用到的几个方法,也是面试时经常被问到的知识点。

1、round

round方法表示四舍五入。round意为“环绕”,其原理是在原数字的基础上先加上0.5再向下取整,它的返回值为int类型,例如,Math.round(11.5)等于12(11.5+0.5后向下取整的结果),Math.round(-11.5)等于-11。

2、ceil

ceil方法的功能是向上取整。ceil意为“天花板”,顾名思义就是对操作数取顶,Math.ceil(a)就是取大于a的最小整数。需要注意的是它的返回值不是int类型,而是double类型。若a是正数,则把小数“入”,若a是负数,则把小数“舍”。

3、floor

floor方法的功能是向下取整。floor意为“地板”,顾名思义是对操作数取底。Math.floor(a),就会取小于a的最大整数。它的返回值类型与ceil意义,也是double类型。若a是正数,则把小数“舍”,若a是负数,则把小数“入”。

上述三个与取整有关的方法(round、ceil、floor)的作用于它们的英文名字的含义相对应,也特别好记,下面是一个实例分析:

round、ceil、floor的区别
数字 floor round ceil
2.4 2.0 2 3.0
2.5 2.0 3 3.0
2.6 2.0 3 3.0
-2.4 -3.0 -2 -2.0
-2.5 -3.0 -2 -2.0
-2.6 -3.0 -3 -1.0

上面程序运行结果为:

Math.round(8.4)=8
Math.round(-8.4)=-8
Math.ceil(8.4)=9.0
Math.ceil(-8.4)=-8.0
Math.floor(8.4)=8.0
Math.floor(-8.4)=-9.0

常见笔试题:

Math.round(11.5)等于多少?Math.round(-11.5)等于多少?

答案:12,-11。见上面讲解。

Math类中round、ceil和floor方法的功能的更多相关文章

  1. 在java中浅谈Math类中的常用方法

    通过最近的学习,学到了一些的Math类中的常见方法 package org.stm.demo; public class Test { public static void main(String[] ...

  2. Math类中的BigDecimal

    如果我们编译运行下面这个程序会看到什么? public class Test {    public static void main(String args[]) {                 ...

  3. C#判断一个类中有无"指定名称"的方法

    C#中可以通过反射分析元数据来解决这个问题,示例代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 ...

  4. QRadioButton类中Toggled()信号的使用方法

    QRadioButton类中Toggled()信号的使用方法 1.说明 QRadioButton中,Toggled()信号是在Radio Button状态(开.关)切换时发出的,而clicked()信 ...

  5. 实现Square类,让其继承自Rectangle类,并在Square类增添新属性和方法,在2的基础上,在Square类中重写Rectangle类中的初始化和打印方法

    实现Square类,让其继承自Rectangle类,并在Square类增添新属性和方法,在2的基础上,在Square类中重写Rectangle类中的初始化和打印方法 #import <Found ...

  6. File类中的list和listFiles方法

    File类中的list和listFiles方法 list()方法是返回某个目录下的所有文件和目录的文件名,返回的是String数组 listFiles()方法是返回某个目录下所有文件和目录的绝对路径, ...

  7. 类中为什么要定义__init__()方法

    总结一下, 加上__init__()方法后,类才可以实例化,不加类就是个空壳,相当于一个方法集合 学习Python的类,一直不太理解为什么一定要定义init()方法,现在简要谈一下自己的理解吧. 1. ...

  8. 错误 在类中找不到main方法请将main方法定义为 public static void main String args否则JavaFX应用程序类必须扩展javafx-ap

    最近在使用eclipse编写java程序时遇到这样一个问题: 错误在类中找不到main方法,请将main方法定义为 public static void main(String[] args)否则 J ...

  9. 错误: 在类中找不到 main 方法, 请将 main 方法定义为:public static void main(String[] args)否则 JavaFX 应用程序类必须扩展javafx.ap

    最近在使用eclipse编写java程序时遇到这样一个问题: 错误在类中找不到main方法,请将main方法定义为 public static void main(String[] args)否则 J ...

随机推荐

  1. 最简单易懂的SpringCloudSleuth教程

    事务mapjvm 大佬对下面的说法是否同意呢 能否比较下zipkin,pinpoint,以及skywalking.该如何选型 回答: 他们都提供了分布式服务跟踪的能力,pinpoint以及skywal ...

  2. 计算两个latitude-longitude点之间的距离? (Haversine公式)

    问题描述 如何计算纬度和经度指定的两点之间的距离?为了澄清,我想要距离公里;这些点使用WGS84系统,我想了解可用方法的相对准确性.最佳解决方案 这个link可能对您有帮助,因为它详细说明了使用Hav ...

  3. Android开发——子进程更新UI

    方式一:Handler和Message ① 实例化一个Handler并重写handlerMessage()方法 private Handler handler = newHandler() { pub ...

  4. SVN汉化教程2017.10.6

    https://jingyan.baidu.com/album/b87fe19e95f5925219356853.html?picindex=4

  5. DUBBO报错分析—1(连接zookeeper成功,调用方法无反应,不报错)

    思路分析 调用方法时,最后调用执行的是mapper的sql语句,既然调用对应的方法无法获取返回值,多是sql错误,但是并未报sql错误,说明可能是与sql相关的数据源配置错误. 过程调试 经尝试,当直 ...

  6. Java基础之抽象类

    /* 1.抽象类的概述: 动物不应该定义为具体的东西,而且动物中的吃,睡等也不应该是具体的. 我们把一个不是具体的功能称为抽象的功能,而一个类中如果有抽象的功能,该类必须是抽象类. 抽象类的特点: A ...

  7. HTML5 CSS3专题 纯CSS打造相册效果

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/30993277 今天偶然发现电脑里面还有这样的一个例子,感觉效果还不错,不记得啥时 ...

  8. Java 读书笔记 (七) 变量

    Java语言中, 所有的变量在使用前必须声明.声明变量的基本格式: type identifier [ =value],[,identifier [=value]...]; 声明变量的实例,有些包含了 ...

  9. 新版知乎登录之post请求

    前言 在上一篇文章中给大家讲解了requests发送post请求的几种方式,并分析了一些使用陷阱. 疑惑 在文章发表之后,有朋友给我留言说,知乎登录就没有使用提交Form表单(application/ ...

  10. bzoj 1076 奖励关 状压+期望dp

    因为每次选择都是有后效性的,直接dp肯定不行,所以需要逆推. f[i][j]表示从第i次开始,初始状态为j的期望收益 #include<cstdio> #include<cstrin ...