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程序的运行平台. |-可以做输入输出,垃圾回收:(此处不讲) |-可以获取时间: |-可以获取环境变量: |-可以获取系统信息: |- ...
随机推荐
- 用匿名内部类实现 Java 同步回调
在一个应用系统中,不论使用何种编程语言,模块之间要进行调用,仅存在三种方式:同步调用.异步调用.回调.本文就其中回调方式进行详细解读,并通过匿名内部类的手段,在最后实现一个同步回调的过程. 一.回调的 ...
- 正式班D21
2020.11.03星期二 正式班D21 目录 11.5 源码包 11.5.1 预先安装编译安装依赖的库 11.5.2 官网下载源码包 11.5.3 解压.编译.编译安装 11.5 源码包 11.5. ...
- Java基础知识(三)
一.hashCode 与 equals (重要) 面试官可能会问你:"你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hashCode方法?" 1 ...
- iptables基础原理和使用简介
概念简介 名称 Netfilter/iptables模块有两部分组成: Netfilter框架以及iptables,iptables又分为iptables(内核空间)和iptables命令行工具(用户 ...
- 傲视Kubernetes(一):Kubernetes简介
前言 从上个月,因工作需要外加兴趣所知,博主开始学习Kubernetes,时至今日可以说是刚刚入门.独自学不如一起学,后面博主会一边学着一边将学习内容以博文的形式呈现出来,希望能跟各位园友有问题一起讨 ...
- SpringBoot的外部化配置最全解析!
目录 SpringBoot中的配置解析[Externalized Configuration] 本篇要点 一.SpringBoot官方文档对于外部化配置的介绍及作用顺序 二.各种外部化配置举例 1.随 ...
- 1.python的函数参数传递
1 Python的函数参数传递 看两个例子: a = 1 def fun(a): a = 2 fun(a) print a # 1 a = [] def fun(a): a.append(1) fun ...
- Spring源码解析之BeanFactoryPostProcessor(一)
BeanFactoryPostProcessor 在前面几个章节,笔者有介绍过BeanFactoryPostProcessor,在spring在解析BeanDefinition之后,正式初始化bean ...
- 《.NET 5.0 背锅案》第3集-剧情反转:EnyimMemcachedCore 无罪,.NET 5.0 继续背锅
今天晚上基于第2集中改进版的 EnyimMemcachedCore 进行了发布,发布过程中故障重现,最大的嫌犯 EnyimMemcachedCore 被证明无罪,暂时委屈 .NET 5.0 继续背锅. ...
- 性能工具-mem
1.目前valgrind . memleak .free .top .ps 中vsz Rss . buddy. slab 这些用的比较多,一般用于处理内存紧张问题