Math

Java这种级别的编程语言怎么可能没有数学相关的操作呢?

java.lang.Math类提供了基本数学运算的方法。

该类是final的,说明不能被继承。

该类的构造方法是私有的(private),说明不让实例化;

该类中的所有方法都是静态的,均可以通过类名直接调用;

Math类中有两个常量:

|-PI:圆周率π

|-E:自然常量(约为2.71828)

public static final double E = 2.7182818284590452354;
public static final double PI = 3.14159265358979323846;

主要方法:

static int abs(int a) 求a的绝对值,有4种重载,还有float,double和long
static double pow(double a, double b) 求a的b次方幂
static double sqrt(double a) 求a的平方根
static int round(float a) 求a的四舍五入结果(仅适用于舍入到整数)
static double ceil(double a) 返回不小于a的最小整数值(正向取整)
static double floor(double a) 返回不大于a的最大整数值(负向取整)
public class TestMath {
public static void main(String[] args) {
System.out.println(Math.abs(-3.01));
System.out.println(Math.pow(2.0, 10.0));
System.out.println(Math.sqrt(81));
// 小数处理
double num = 3.4;
System.out.println("round " + num + " = " + Math.round(num));
num = 3.5;
System.out.println("round " + num + " = " + Math.round(num));
num = 3.001;
System.out.println("ceil " + num + " = " + Math.ceil(num));
num = 3.999;
System.out.println("floor " + num + " = " + Math.floor(num));
}
}

关于取整、舍入:

向上取整的案例:10吨货物,车每次运3吨,需3+1次

向下取整的案例:抹零


向上取整,是向“正方向”取整

向下取整,是向“负方向”取整



0.1 向上取整的结果是:1.0

0.9 向上取整的结果是:1.0

-0.1 向上取整的结果是:-0.0

-0.9 向上取整的结果是:-0.0


0.1 向下取整的结果是:0.0

0.9 向下取整的结果是:0.0

-0.1 向下取整的结果是:-1.0

-0.9 向下取整的结果是:-1.0


0.4 四舍五入的结果是:0

0.5 四舍五入的结果是:1

-0.6 四舍五入的结果是:-1

-0.5 四舍五入的结果是:0

public class Test取整舍入 {
public static void main(String[] args) {
向上取整(0.1);
向上取整(0.9);
向上取整(-0.1);
向上取整(-0.9);
System.out.println("----------");
向下取整(0.1);
向下取整(0.9);
向下取整(-0.1);
向下取整(-0.9);
System.out.println("----------");
四舍五入(0.4);
四舍五入(0.5);
四舍五入(-0.6);
四舍五入(-0.5);
}
static void 四舍五入(double p) {
System.out.println(p + " 四舍五入的结果是:" + Math.round(p));
}
static void 向上取整(double p) {
System.out.println(p + " 向上取整的结果是:" + Math.ceil(p));
}
static void 向下取整(double p) {
System.out.println(p + " 向下取整的结果是:" + Math.floor(p));
}
}

Java基础教程——Math类的更多相关文章

  1. java基础23 Math类和Random类

    一.Math数学类 主要是提供很多数学的公式 1.1.Math类的常用方法 abs(int a):绝对值   ceil(double a):向上取整   floor(double a):向下取整   ...

  2. Java基础教程——BigDecimal类

    BigDecimal类 float.double类型的数字在计算的时候,容易发生精度丢失. 使用java.math.BigDecimal类可以解决此类问题. 前面讲过Math类,现在的BigDecim ...

  3. java基础之Math类

    Math类概述Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数. 成员方法 public static int abs(int a):绝对值 public static ...

  4. Java基础教程(10)--类

    一.声明类   你已经见过了以如下方式定义的类: class MyClass { // field, constructor, and method declarations }   上面是声明类的最 ...

  5. Java基础教程——File类、Paths类、Files类

    File类 File类在java.io包中.io代表input和output,输入和输出. 代表与平台无关的文件和目录. 可以新建.删除.重命名,但不能访问文件内容. File类里的常量: impor ...

  6. Java基础教程——Date类和Calendar类

    Date类和Calendar类都是关于日期的类,都在java.util包中,使用时需要import. Date java.util.Date类的对象用来表示时间和日期,用得最多的是获取系统当前日期和时 ...

  7. Java基础教程——Scanner类

    Scanner属于java.util包. java.util包是Java内置的一个工具包,其中包含一系列常用的工具类,如处理日期.日历.集合类: 如果要使用到该包中的类,必须显式引入包名:import ...

  8. Java基础教程——RunTime类

    RunTime类 java.lang.RunTime类代表Java程序的运行时环境. 可以进行垃圾回收(gc()),可以进行系统资源清理(runFinalization()): 可以加载文件(load ...

  9. Java基础教程——System类

    System类 java.lang.System类代表当前Java程序的运行平台. |-可以做输入输出,垃圾回收:(此处不讲) |-可以获取时间: |-可以获取环境变量: |-可以获取系统信息: |- ...

随机推荐

  1. 给 Mac 添加右键菜单「使用 VSCode 打开」

    最终的实现效果是在文件 / 文件夹上右击时,会出现菜单项「用 VSCode 打开」,点击后会启动 Visual Studio Code 打开对应的文件 / 文件夹. 实现步骤 打开「自动操作.app」 ...

  2. 【总结】springcloud

    一.spirngcloud概述 1.springcloud是什么? spring cloud是一个一站式的开发分布式系统的框架,为开发人员提供了快速构建分布式系统中一些常见模式的工具(如:配置管理,服 ...

  3. 什么PO模式?

    PO模式PO是Page Object的缩写,PO模式是自动化测试项目开发实践的最佳设计模式之一.核心思想是通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化, 只需要调整页面元素封 ...

  4. 安装Mysql,开发权限,以及复制数据库

    官网下载 https://downloads.mysql.com/archives/community/     解压后安装,管理员身份打开cmd,转到mysql的bin目录,mysqld --ins ...

  5. 响应式编程简介之:Reactor

    目录 简介 Reactor简介 reactive programming的发展史 Iterable-Iterator 和Publisher-Subscriber的区别 为什么要使用异步reactive ...

  6. JNI-Thread中start方法的调用与run方法的回调分析

    前言 在java编程中,线程Thread是我们经常使用的类.那么创建一个Thread的本质究竟是什么,本文就此问题作一个探索. 内容主要分为以下几个部分 1.JNI机制的使用 2.Thread创建线程 ...

  7. MarkDown排版、多样的文本框

    <战争与和平>一八一二年,俄.法两国再度交战,安德烈·保尔康斯基在战役中身受重伤,而俄军节节败退,眼见莫斯科将陷于敌人之手了.罗斯托夫将原本用来搬运家产的马车,改去运送伤兵,娜达莎方能于伤 ...

  8. unix进程间通信方式(IPC)

    unix进程间通信方式(IPC) 管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信. 命名管道(named pipe):命名管道克服了管道没有 ...

  9. C++ 基础 6:模板

    1 函数模板 泛型(Generic Programming),即是指具有在多种数据类型上皆可操作的含意. 泛型编程 的代表作品 STL 是一种高效.泛型.可交互操作的软件组件. 泛型编程最初诞生于 C ...

  10. 详解如何在RVIZ中用Marker显示机器人运动路径

    写在前面 最近有道作业题需要将机器人的历史路径显示出来,但是网上很多相关的教程都是搬运了官网的链接,并没有详细的操作流程...因此我又花费了很多时间去ros官网上学习marker的用法,学习怎么写pu ...