Java基础教程——Math类
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类的更多相关文章
- java基础23 Math类和Random类
一.Math数学类 主要是提供很多数学的公式 1.1.Math类的常用方法 abs(int a):绝对值 ceil(double a):向上取整 floor(double a):向下取整 ...
- Java基础教程——BigDecimal类
BigDecimal类 float.double类型的数字在计算的时候,容易发生精度丢失. 使用java.math.BigDecimal类可以解决此类问题. 前面讲过Math类,现在的BigDecim ...
- java基础之Math类
Math类概述Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数. 成员方法 public static int abs(int a):绝对值 public static ...
- Java基础教程(10)--类
一.声明类 你已经见过了以如下方式定义的类: class MyClass { // field, constructor, and method declarations } 上面是声明类的最 ...
- Java基础教程——File类、Paths类、Files类
File类 File类在java.io包中.io代表input和output,输入和输出. 代表与平台无关的文件和目录. 可以新建.删除.重命名,但不能访问文件内容. File类里的常量: impor ...
- Java基础教程——Date类和Calendar类
Date类和Calendar类都是关于日期的类,都在java.util包中,使用时需要import. Date java.util.Date类的对象用来表示时间和日期,用得最多的是获取系统当前日期和时 ...
- Java基础教程——Scanner类
Scanner属于java.util包. java.util包是Java内置的一个工具包,其中包含一系列常用的工具类,如处理日期.日历.集合类: 如果要使用到该包中的类,必须显式引入包名:import ...
- Java基础教程——RunTime类
RunTime类 java.lang.RunTime类代表Java程序的运行时环境. 可以进行垃圾回收(gc()),可以进行系统资源清理(runFinalization()): 可以加载文件(load ...
- Java基础教程——System类
System类 java.lang.System类代表当前Java程序的运行平台. |-可以做输入输出,垃圾回收:(此处不讲) |-可以获取时间: |-可以获取环境变量: |-可以获取系统信息: |- ...
随机推荐
- layer弹窗动态改变标题
1.利用layer弹出iframe层(type=2) 1 function ShowKJCX(results) { 2 ly = layer.open({ 3 type: 2, 4 id:" ...
- 教你如何使用github+jsDelivr搭建免费图床
前言 之前写了一篇文章,教你如何使用Typora+PicGo实现图片自动上传到图床 . 这里我用的是七牛图床,七牛图床有一定的免费使用量(没记错的话应该是10个G),如果你的存储量超过这个大小就需要付 ...
- 跟我一起学Redis之Redis配置文件啃了一遍之后,从尴尬变得有底气了
前言 秋高气爽的一天,那时候年轻帅气的我正在参照着搜索引擎写代码,迷之微笑般的敲着键盘(又从搜索引擎上找到代码案例啦),突然领导在小隔间里传来了呼唤声,然后有了以下场景: 领导:小Z,你过来一下: 当 ...
- scrapy反反爬虫
反反爬虫相关机制 Some websites implement certain measures to prevent bots from crawling them, with varying d ...
- Java 中的 反射机制
概念明确 什么是类的对象? 类的对象就是:基于某个类 new 出来的对象,也称为实例对象.这个很容易理解,就不过多阐述了. 什么是类对象? 类对象就是:类加载的产物,封装了一个类的所有信息(类名.父类 ...
- 最简单的基于FFmpeg的直播系统开发移动端例子:IOS 视频解码器
本文记录IOS平台下基于FFmpeg的视频解码器.该示例C语言的源代码来自于<最简单的基于FFMPEG+SDL的视频播放器>.相关的概念就不再重复记录了. 源代码 项目的目录结构如图所示. ...
- PriorityQueue原理分析——基于源码
在业务场景中,处理一个任务队列,可能需要依照某种优先级顺序,这时,Java中的PriorityQueue(优先队列)便可以派上用场.优先队列的原理与堆排序密不可分,可以参考我之前的一篇博客: 堆排序总 ...
- 《<SPRING5高级编程(第5版)>_王净译》笔记-【目录】
第一次写这玩意,不知道什么时候能写完,今天项目比较近,期望年底能看完吧. 先定个小目标 20201228 完成 第1章 Spring介绍 第2章 入门 第3章 在Spring中引入IoC和DI 第4章 ...
- nginx&http 第三章 ngx http ngx_http_process_request_headers
HTTP 请求行正确处理完成后,针对 HTTP/1.0 及以上版本紧接着要做的就是请求 HEADER 的处理与解析了 /** * 用于处理http的header数据 * 请求头: * Host: lo ...
- SSH2中的笔记
1.web后端实质就是对表的添.删.查.改: 第一步:对系统进行分析,然后构思. 第二步:画出E-R图,设计出表或写出相应的实体类. 第三步:按照最简单的思想去设计的话,一个action-->一 ...