JAVA中数学函数

简介: 记录JAVA中Math的静态方法记录使用Math的两种方式

@[TOC]

0 写在前面

在 Math 类中,包含了各种各样的数学函数。在编写不同类别的程序时,可能需要的函数也不同。
例如进行幂运算,需要借助于Math类的 pow方法。以下语句:double y = Math.pow(x,a);

1 Math的所有方法

以下static 代表静态方法的意思

static double abs(double a) 返回一个 double值的绝对值。
static float abs(float a) 返回一个 float值的绝对值。
static int abs(int a) 返回一个值的绝对值 int
static long abs(long a) 返回一个 long值的绝对值。
static double acos(double a) 返回一个值的余弦;返回的角度范围在0到零圆周率。
static int addExact(int x, int y) 返回参数的总和,抛出一个异常,如果结果溢出一个 int
static long addExact(long x, long y) 返回参数的总和,抛出一个异常,如果结果溢出 long
static double asin(double a) 返回一个值的圆弧正弦;返回的角度范围在零圆周率/ 2通过空圆周率/ 2。
static double atan(double a) 返回一个值的反正切值;返回的角度范围在零圆周率/ 2通过空圆周率/ 2。
static double atan2(double y, double x) 返回从直角坐标转换角空θ( xy)极坐标(r, 空θ)。
static double cbrt(double a) 返回一个值 double立方根。
static double ceil(double a) 返回最小(接近负无穷大) double值是大于或等于的说法,等于一个数学整数。
static double copySign(double magnitude, double sign) 用第二个浮点参数的符号返回第一个浮点参数。
static float copySign(float magnitude, float sign) 用第二个浮点参数的符号返回第一个浮点参数。
static double cos(double a) 返回一个角度的三角余弦。
static double cosh(double x) 返回一个 double双曲余弦值。
static int decrementExact(int a) 返回参数减一,抛出一个异常,如果结果溢出一个 int
static long decrementExact(long a) 返回参数减一,抛出一个异常,如果结果溢出 long
static double exp(double a) 返回欧拉数努尔提升到一 double价值动力。
static double expm1(double x) 返回nulle X - 1。
static double floor(double a) 收益最大(最接近正无穷大) double值小于或等于该参数等于数学整数。
static int floorDiv(int x, int y) 收益最大(最接近正无穷大) int值小于或等于代数商。
static long floorDiv(long x, long y) 收益最大(最接近正无穷大) long值小于或等于代数商。
static int floorMod(int x, int y) 返回参数的 int地板模数。
static long floorMod(long x, long y) 返回参数的 long地板模数。
static int getExponent(double d) 返回用于表示一个 double偏指数。
static int getExponent(float f) 返回用于表示一个 float偏指数。
static double hypot(double x, double y) 返回sqrt(nullx 二 + nully 二)没有中间的上溢或下溢。
static double IEEEremainder(double f1, double f2) 计算剩余操作两参数由IEEE 754标准规定。
static int incrementExact(int a) 返回参数递增1,抛出一个异常,如果结果溢出一个 int
static long incrementExact(long a) 返回参数递增1,抛出一个异常,如果结果溢出 long
static double log(double a) 收益率的自然对数(基地努尔)一 double价值。
static double log10(double a) 返回以10为底的对数的一 double价值。
static double log1p(double x) 返回参数和1的总和的自然对数。
static double max(double a, double b) 返回两个 double值越大。
static float max(float a, float b) 返回两个 float值越大。
static int max(int a, int b) 返回两个 int值越大。
static long max(long a, long b) 返回两个 long值越大。
static double min(double a, double b) 返回两个 double值较小。
static float min(float a, float b) 返回两个 float值较小。
static int min(int a, int b) 返回两个 int值较小。
static long min(long a, long b) 返回两个 long值较小。
static int multiplyExact(int x, int y) 返回参数的产品,抛出一个异常,如果结果溢出一个 int
static long multiplyExact(long x, long y) 返回参数的产品,抛出一个异常,如果结果溢出 long
static int negateExact(int a) 返回自变量的否定,抛出一个异常,如果结果溢出一个 int
static long negateExact(long a) 返回自变量的否定,抛出一个异常,如果结果溢出 long
static double nextAfter(double start, double direction) 返回在第二个参数的方向上与第一个参数相邻的浮点数。
static float nextAfter(float start, double direction) 返回在第二个参数的方向上与第一个参数相邻的浮点数。
static double nextDown(double d) 返回邻近 d在负无穷大的方向的浮点值。
static float nextDown(float f) 返回邻近 f在负无穷大的方向的浮点值。
static double nextUp(double d) 返回邻近 d在正无穷大方向的浮点值。
static float nextUp(float f) 返回邻近 f在正无穷大方向的浮点值。
static double pow(double a, double b) 返回将第一个参数的值提高到第二个参数的功率。
static double random() 返回一个 double值与一个积极的迹象,大于或等于 0.0小于 1.0
static double rint(double a) 返回 double值是在最接近的值的参数,相当于一个数学整数。
static long round(double a) 返回最近的 long的说法,与舍入到正无穷。
static int round(float a) 返回最近的 int的说法,与舍入到正无穷。
static double scalb(double d, int scaleFactor) 返回 d×2 scaleFactor圆润好像由一个单一的正确舍入的浮点乘法的双重价值的成员组。
static float scalb(float f, int scaleFactor) 返回 f×2 scaleFactor圆润好像由一个单一的正确舍入的浮点乘法的float值集成员。
static double signum(double d) 返回自变量的符号函数;零如果参数为零,1如果参数大于零,1如果参数小于零。
static float signum(float f) 返回自变量的符号函数;零如果参数为零,1.0f如果参数大于零,-1.0f如果参数小于零。
static double sin(double a) 返回一个角度的三角正弦。
static double sinh(double x) 返回一个 double的双曲正弦值。
static double sqrt(double a) 返回正平方根入一 double价值。
static int subtractExact(int x, int y) 返回参数的差异,抛出一个异常,如果结果溢出一个 int
static long subtractExact(long x, long y) 返回参数的差异,抛出一个异常,如果结果溢出 long
static double tan(double a) 返回一个角的三角切线。
static double tanh(double x) 返回一个 double的双曲正切值。
static double toDegrees(double angrad) 将一个测量角度弧度近似等效的角度衡量度。
static int toIntExact(long value) 返回的 long参数的值;抛出一个异常,如果值溢出一个 int
static double toRadians(double angdeg) 转换一个角度衡量度的近似等效用弧度测量的角。
static double ulp(double d) 返回一个小规模的争论。
static float ulp(float f) 返回一个小规模的争论。

2 举例

所以数学函数调用方法还是很简单的,有两种办法:

    1.Math.方法名(对应参数);
    2.在类中引入Math包,然后直接用Math下的 方法名(对应参数)

如果我想求得两个数比较大的那个值可以直接使用max(int a, int b)
方法一实现:Math.方法名(对应参数);

public class MathTest {
    public static void main(String[] args) {
        int a = 3;
        int b = 9;
        int max = Math.max(a, b);
        System.out.println(max);//输出9
    }
}

如果我想求a的b次方,则直接使用

import static java.lang.Math.*;
public class MathTest {
    public static void main(String[] args) {
        int a = 3;
        int b = 9;
        double pow = Math.pow(a, b);
        System.out.println(pow);//19683.0
    }
}
}

3 数学函数中的常量

Java还提供了两个用于表示π和e常量的最接近的近似值:
Math.PI
Math.E
可以看一下:
在这里插入图片描述
如果在JAVA代码中可以直接使用:

        System.out.println(Math.E);
        double r = 3;
        System.out.println("圆的面积接近于:" + Math.PI * r * r);

输出

2.718281828459045
圆的面积接近于:28.274333882308138

写在最后

Math像是一个数学工具类一样,实际上在开发中这个还是比较好用的。
例如:如果直接用int的类型去计算10亿*4的话,结果为-294967296。因为这是一个计算溢出,超过了int最大储存数,而Math 类提供了一些方法使整数有更好的运算安全性。Math,multiplyExact(1000000000,4),就会生成一个异常。你可以捕获这个异常或者让程序终止,而不是允许它给出一个错误的结果然后悄无声息地继续运行。

相关文章
|
1月前
|
Java
让星星⭐月亮告诉你,jdk1.8 Java函数式编程示例:Lambda函数/方法引用/4种内建函数式接口(功能性-/消费型/供给型/断言型)
本示例展示了Java中函数式接口的使用,包括自定义和内置的函数式接口。通过方法引用,实现对字符串操作如转换大写、数值转换等,并演示了Function、Consumer、Supplier及Predicate四种主要内置函数式接口的应用。
27 1
|
2月前
|
Java
java基础(11)函数重载以及函数递归求和
Java支持函数重载,即在同一个类中可以声明多个同名方法,只要它们的参数类型和个数不同。函数重载与修饰符、返回值无关,但与参数的类型、个数、顺序有关。此外,文中还展示了如何使用递归方法`sum`来计算两个数之间的和,递归的终止条件是当第一个参数大于第二个参数时。
32 1
java基础(11)函数重载以及函数递归求和
|
1月前
|
Java 编译器 C语言
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
22 3
|
3月前
|
Java 调度 Android开发
Android经典实战之Kotlin的delay函数和Java中的Thread.sleep有什么不同?
本文介绍了 Kotlin 中的 `delay` 函数与 Java 中 `Thread.sleep` 方法的区别。两者均可暂停代码执行,但 `delay` 适用于协程,非阻塞且高效;`Thread.sleep` 则阻塞当前线程。理解这些差异有助于提高程序效率与可读性。
79 1
|
4月前
|
存储 Java 编译器
Java中ArrayList的常用函数
确切地说,`ArrayList` 提供的这些方法构成了一套强大并且灵活的工具集,可以满足各种程序设计情况中的需求。例如,通过使用 `iterator()`方法,开发者可以在不知道集合大小的情况下遍历集合中全部或部分元素;而 `sort()`方法则能够对集合中的元素进行排序。这些函数在日常的Java编程中极其常见且重要,掌握它们对于进行集合操作和数据处理来说是基础且必须的。
33 2
Java中ArrayList的常用函数
|
3月前
|
存储 运维 Java
函数计算产品使用问题之怎么配置定时触发器来调用Java函数
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
开发框架 Java Android开发
JNI中调用Java函数
JNI中调用Java函数
29 0
|
3月前
|
开发框架 Java Android开发
JNI中调用Java函数
JNI中调用Java函数
34 0
|
4月前
|
Rust Cloud Native Java
Java演进问题之Serverless应用或函数的冷启动如何解决
Java演进问题之Serverless应用或函数的冷启动如何解决
|
5月前
|
存储 算法 搜索推荐
Java中的数组函数库及其使用技巧
Java中的数组函数库及其使用技巧
下一篇
无影云桌面