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. [ Java面试题 ]多线程篇

    1.什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位.程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速.比如,如果一个线程完成一 ...

  2. 手把手教你使用 netlify 实现前端的 自动部署 + HTTPS

    随着开源工具越来越多,特别是nodejs构建微服务器之快,实现前端自动化部署越来越简单了,有可能[10行js代码+10行sh脚本+设置github的webhook]就能实现,但是如果你和我一样,就是& ...

  3. UDP和TCP的差异

    UDP和TCP传递数据的差异类似于电话和明信片之间的差异. TCP就像电话,必须先验证目标是否可以访问后才开始通讯. UDP就像明信片,信息量很小而且每次传递成功的可能性很高,但是不能完全保证传递成功 ...

  4. JavaScript设计模式 Item 5 --链式调用

    1.什么是链式调用 这个很容易理解,例如: $(this).setStyle('color', 'red').show(); 一般的函数调用和链式调用的区别:调用完方法后,return this返回当 ...

  5. CSS选择器详细总结

    一.基本选择器 序号 选择器 含义 1. * 通用元素选择器,匹配任何元素 2. E 标签选择器,匹配所有使用E标签的元素 3. .info class选择器,匹配所有class属性中包含info的元 ...

  6. Android监测手指上下左右滑动屏幕

    在开发android程序时,有时会需要监测手指滑动屏幕,当手指朝上下左右不同方向滑动时做出不同的响应,那怎么去实现呢? 利用Android提供的手势监测器就可以很方便的实现,直接上代码(已测试通过) ...

  7. nodejs 简单安装环境

    学习资料 1.深入浅出Node.js 2.Node.js开发指南 简介(只捡了我觉得重要的) Node.js是让Javascript脱离浏览器运行在服务器的一个平台,不是语言: Node.js采用的J ...

  8. I/O-----字节输入流

    package io.day03; import java.io.FileInputStream; import java.io.InputStream; public class day03 { p ...

  9. Dubbo中暴露服务的过程解析

    dubbo暴露服务有两种情况,一种是设置了延迟暴露(比如delay="5000"),另外一种是没有设置延迟暴露或者延迟设置为-1(delay="-1"): 设置 ...

  10. 1.2 lambda 表达式的语法

    1.2 lambda 表达式的语法 还以上一节中的排序为例.我们传递代码来检查某个字符串的长度是否小于另一个字符串的长度,如下所示: Integer.compare(first.length(), s ...