我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java中如何使用Math类

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java中如何使用Math类

这篇文章将为大家详细讲解有关Java中如何使用Math类,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Java常用类库Math

类Math包含用于执行基本数字运算的方法,例如基本指数,对数,平方根和三角函数

一、Field Summary

Modifier and TypeFieldDescription
static doubleE自然对数的基数
static doublePIπ

二、Method Summary

2.1 常用方法
Modifier and TypeFieldDescription


static doubleceil(double a)返回≥a的最小整数
static doublefloor(double a)返回≤a的最大整数
static intround(float a)返回四舍五入后的值


static Tmax(T a, T b)返回两个数据类型为T中较大的
static Tmin(T a, T b)返回两个数据类型为T中较x小的


static doublerandom()返回[0.0,1.0)。
static doublesqrt(double a)返回正平方根。
static Tabs(T a)返回数据类型为T的绝对值
static doublepow(double a, double b)返回a^b
static doublelog(double a)返回基数为e的对数
static doublelog10(double a)返回基数为10的对数
2.1.1 部分方法源码
public static long round(double a) {        long longBits = Double.doubleToRawLongBits(a);        long biasedExp = (longBits & DoubleConsts.EXP_BIT_MASK)                >> (DoubleConsts.SIGNIFICAND_WIDTH - 1);        long shift = (DoubleConsts.SIGNIFICAND_WIDTH - 2                + DoubleConsts.EXP_BIAS) - biasedExp;        if ((shift & -64) == 0) { // shift >= 0 && shift < 64            // a is a finite number such that pow(2,-64) <= ulp(a) < 1            long r = ((longBits & DoubleConsts.SIGNIF_BIT_MASK)                    | (DoubleConsts.SIGNIF_BIT_MASK + 1));            if (longBits < 0) {                r = -r;            }            // In the comments below each Java expression evaluates to the value            // the corresponding mathematical expression:            // (r) evaluates to a / ulp(a)            // (r >> shift) evaluates to floor(a * 2)            // ((r >> shift) + 1) evaluates to floor((a + 1/2) * 2)            // (((r >> shift) + 1) >> 1) evaluates to floor(a + 1/2)            return ((r >> shift) + 1) >> 1;        } else {            // a is either            // - a finite number with abs(a) < exp(2,DoubleConsts.SIGNIFICAND_WIDTH-64) < 1/2            // - a finite number with ulp(a) >= 1 and hence a is a mathematical integer            // - an infinity or NaN            return (long) a;        }    }    public static int max(int a, int b) {        return (a >= b) ? a : b;    } public static int min(int a, int b) {        return (a <= b) ? a : b;    }    public static int abs(int a) {        return (a < 0) ? -a : a;    }

2.1.2 具体实现

public class Test {    public static void main(String[] args) {        System.out.println("≥3.2的最小整数为:"+Math.ceil(3.2));//output:4        System.out.println("≤3.2的最大整数为:"+Math.floor(3.2));//output:3        System.out.println("3.2四舍五入为:"+Math.round(3.2));//output:3        System.out.println("-1,5中较大的数为:"+Math.max(-1,5));//output:5        System.out.println("-1,5中较小的数为:"+Math.min(-1,5));//output:-1        System.out.println("随机产生[0,5)范围的数"+Math.random()*5);//output:[0,5)中任意的随机数        System.out.println("25的平方根为:"+Math.sqrt(25));//output:5        System.out.println("-9的绝对值为:"+Math.abs(-9));//output:9        System.out.println("2^3的值为:"+Math.pow(2,3));//output:8        System.out.println("以e为基数的对数为:"+Math.log(10));        System.out.println("以10为基数的对数为:"+Math.log10(100));//output:2    }}
2.2 算数运算
Modifier and TypeFieldDescription
static TaddExact(T x, T y)返回x+y,溢出则抛出异常T(int,long)
static TmultiplyExact(A x, B y)返回x*y,结果溢出则抛出异常int(int,int),long(long,int/long)
static longmultiplyFull(int x, int y)返回(long)x*(long)y
static TfloorDiv(A x, B y)返回≤ x/y的最大值,y=0则抛出ArithmeticException异常,int(int,int),long(long,int/long
static TfloorMod(A x, B y)返回floor(x%y),即x-(x/y)*y,int(int/long,int),long(long,long)
2.3 三角函数
Modifier and TypeFieldDescription
static doublesin(double a)返回角度的三角正弦值
static doublecos(double a)返回角度的三角余弦值
static doubletan(double a)返回角度的三角正切
static doubleasin(double a)返回a的反正弦值,返回的角度-pi/2~pi/2
static doubleacos(double a)返回a的反余弦值,返回的角度0.0~pi
static doubleatan(double a)返回a的反正切值,返回的角度-pi/2~pi/2
2.4 其他不常用方法
Modifier and TypeFieldDescription
static doublecosh(double x)返回 double值的双曲余弦值
static doublecbrt(double a)返回 double值的多维数据集根
static doublecopySign(double magnitude, double sign)返回带有第二个浮点参数符号的第一个浮点参数
static floatcopySign(float magnitude, float sign)返回带有第二个浮点参数符号的第一个浮点参数
static intdecrementExact(int a)返回a-1,如果结果溢出int则抛出异常
static longdecrementExact(long a)返回a-1,如果结果溢出long则抛出异常
static doubleexp(double a)返回e^a
static doubleexpm1(double x)返回 e^x - 1
static doublefma(double a, double b, double c)返回a*b+c
static floatfma(float a, float b, float c)返回a*b+c
static intgetExponent(double d)返回 double表示中使用的无偏指数
static intgetExponent(float f)返回 float表示中使用的无偏指数
static doublehypot(double x, double y)返回sqrt( x 2 + y 2 ),没有中间溢出或下溢
static doubleIEEEremainder(double f1, double f2)根据IEEE 754标准规定,计算两个参数的余数运算
static intincrementExact(int a)返回以1递增的参数,如果结果溢出 int则抛出异常
static longincrementExact(long a)返回以1递增的参数,如果结果溢出 long则抛出异常
static doublelog1p(double x)返回参数和的总和的自然对数
static longmultiplyHigh(long x, long y)返回 long作为两个64位因子的128位乘积的最高64位
static intnegateExact(int a)返回参数的否定,如果结果溢出 int则抛出异常
static longnegateExact(long a)返回参数的否定,如果结果溢出 long则抛出异常
static doublenextAfter(double start, double direction)返回第二个参数方向上第一个参数旁边的浮点数
static floatnextAfter(float start, double direction)返回第二个参数方向上第一个参数旁边的浮点数
static doublenextDown(double d)返回负无穷大方向上与 d相邻的浮点值
static floatnextDown(float f)返回负无穷大方向上与 f相邻的浮点值
static doublenextUp(double d)返回正无穷大方向上与 d相邻的浮点值
static floatnextUp(float f)返回正无穷大方向上与 f相邻的浮点值
static doublerint(double a)返回与 double值最接近的 double值,该值等于数学整数
static doublescalb(double d, int scaleFactor)返回 d ×2 scaleFactor舍入,就像通过单个正确舍入的浮点乘以双 scaleFactor值集的成员一样
static floatscalb(float f, int scaleFactor)返回 f ×2 scaleFactor舍入,就像通过单个正确舍入的浮点乘以浮点值集的成员一样
static doublesignum(double d)返回参数的signum函数; 如果参数为零,则为零;如果参数大于零,则为1.0;如果参数小于零,则为-1.0
static floatsignum(float f)返回参数的signum函数; 如果参数为零则为零,如果参数大于零则为1.0f,如果参数小于零则为-1.0f
static doublesinh(double x)返回 double值的双曲正弦值
static intsubtractExact(int x, int y)返回参数的差异,如果结果溢出 int则抛出异常
static longsubtractExact(long x, long y)返回参数的差异,如果结果溢出 long则抛出异常
static doubletanh(double x)返回 double值的双曲正切值
static doubletoDegrees(double angrad)将以弧度测量的角度转换为以度为单位测量的近似等效角度
static inttoIntExact(long value)返回long参数的值; 如果值溢出int则抛出异常
static doubletoRadians(double angdeg)将以度为单位测量的角度转换为以弧度为单位测量的近似等效角度
static doubleulp(double d)返回参数的ulp大小
static floatulp(float f)返回参数的ulp大小

关于Java中如何使用Math类就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java中如何使用Math类

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java中如何使用Math类

这篇文章将为大家详细讲解有关Java中如何使用Math类,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java常用类库Math类Math包含用于执行基本数字运算的方法,例如基本指数,对数,平
2023-06-20

java math类如何导入

要导入Java的Math类,可以使用以下代码:```javaimport java.lang.Math;```或者,可以使用以下代码将Math类导入为静态类:```javaimport static java.lang.Math.*;```
2023-09-23

Java的Math类怎么使用

本篇内容主要讲解“Java的Math类怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java的Math类怎么使用”吧!Math类包含完成基本数学函数所需的方法。这些方法分为三类:三角函数
2023-06-27

java调用math类如何声明

要调用Math类中的方法,只需在代码中使用Math类的名称,并在方法名前加上类名 Math. 即可。不需要实例化Math类的对象,因为Math类中的方法都是静态的。以下是一个示例:```javapublic class Main {publ
2023-08-14

Math和Random类怎么在Java中使用

Math和Random类怎么在Java中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。java的Math类java中的java.lang.Math类可以直接使用,不需要
2023-06-15

Java中Math类常用方法代码详解

近期用到四舍五入想到以前整理了一点,就顺便重新整理好经常见到的一些四舍五入,后续遇到常用也会直接在这篇文章更新。。。public class Demo{ public static void main(String args[]){
2023-05-31

java中math方法怎么使用

在Java中,可以通过Math类来使用数学方法。Math类中包含了许多静态方法,可以用于执行常见的数学运算,如求平方根、取绝对值、计算三角函数等操作。以下是一些常用的Math方法的使用示例:求绝对值:Math.abs()int a = -
java中math方法怎么使用
2024-03-15

Java中如何使用Objects类

Java中如何使用Objects类,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1 Objects1.1 Objects方法工具类,常用于检查操作返回值方法名作用static
2023-06-20

Java中FileWriter类如何使用

今天就跟大家聊聊有关Java中FileWriter类如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。FileWriter字符输出流构造方法public FileWriter(S
2023-06-20

Java中File类如何使用

这篇文章主要介绍“Java中File类如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java中File类如何使用”文章能帮助大家解决问题。概述要学习Java中的File类,首先我们要知道,在
2023-06-29

Java中如何使用Collection类

Java中如何使用Collection类,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Collection接口Collection是最基本的集合接口,一个Collectio
2023-06-17

java的math类不能创建对象如何解决

在Java中,Math类是一个工具类,其中的方法都是静态方法,因此不能通过创建对象来使用。要使用Math类提供的方法,只需要直接使用类名加方法名的方式调用即可,例如:```double result = Math.sqrt(16);Syst
2023-09-23

Java中Message类和Queue类如何使用

Java中Message类和Queue类如何使用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Message类package com.example.test;
2023-06-17

如何在Java中使用Field类

如何在Java中使用Field类?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Field 成员变量的介绍每个成员变量有类型和值。java.lang.reflec
2023-06-14

如何在Java中使用Arrays类

如何在Java中使用Arrays类?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。2、
2023-06-14

Calendar类如何在Java中使用

这篇文章将为大家详细讲解有关Calendar类如何在Java中使用 ,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Calendar类从JDK1.1版本开始,在处理日期和时间时,系统推荐使用C
2023-05-31

如何在java中使用Byte类

这期内容当中小编将会给大家带来有关如何在java中使用Byte类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统
2023-06-06

如何在java中使用Label类

如何在java中使用Label类?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种
2023-06-14

如何在Java 中使用File类

这期内容当中小编将会给大家带来有关如何在Java 中使用File类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。File类  1.只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问。pa
2023-05-31

Date类如何在Java中使用

Date类如何在Java中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Date类在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,
2023-05-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录