java.lang.Math类使用简介
创始人
2025-05-29 11:08:27
0

java.lang.Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
注意:Math类中的所有字段和方法都是静态static的,所以调用的时候直接使用类名调用即可。

1.字段常量:

1.1 自然对数的底数
public static final double E
比任何其他值都更接近 e(即自然对数的底数)的 double 值。值为:2.718281828459045

1.2 圆周率
public static final double PI
比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。值为:3.141592653589793

2.方法:

2.1 绝对值
public static int abs(int a)
public static long abs(long a)
public static float abs(float a)
public static double abs(double a)
返回参数值的绝对值。如果参数为非负数,则返回该参数。如果参数为负数,则返回该参数的相反数。

举例:
Math.abs(-3); // 返回3
Math.abs(0); // 返回0
Math.abs(3); // 返回3
Math.abs(-0.7F); // 返回0.7F

2.2 返回较小值
public static int min(int a, int b)
public static long min(long a, long b)
public static float min(float a, float b)
public static double min(double a, double b)
返回两个参数值中较小的一个。也就是说,结果为更接近负无穷大的参数。如果参数值相同,那么结果也是同一个值。

举例:
Math.min(0, 3); // 返回0
Math.min(3, 0); // 返回0
Math.min(-1, 3); // 返回-1
Math.min(3, 3); // 返回3

2.3 返回较大值
public static int max(int a, int b)
public static long max(long a, long b)
public static float max(float a, float b)
public static double max(double a, double b)
返回两个参数值中较大的一个。也就是说,结果为更接近正无穷大的参数。如果参数值相同,那么结果也是同一个值。

举例:
Math.max(0, 3); // 返回3
Math.max(3, 0); // 返回3
Math.max(-1, 3); // 返回3
Math.max(3, 3); // 返回3

2.4 返回正无穷大方向的相邻整数
public static double floor(double d)
返回最大的(最接近正无穷大)的浮点数,该值小于等于参数,并等于某个整数。

举例:
Math.floor(0); // 返回0.0
Math.floor(10); // 返回10.0
Math.floor(10.2); // 返回10.0
Math.floor(-10.2); // 返回-11.0
Math.floor(10.9); // 返回10.0
Math.floor(-10.9); // 返回-11.0

2.5 返回负无穷大方向的相邻整数
public static double ceil(double d)
返回最小的(最接近负无穷大)的浮点数,该值大于等于参数,并等于某个整数。

举例:
Math.ceil(0); // 返回0.0
Math.ceil(10); // 返回10.0
Math.ceil(10.2); // 返回11.0
Math.ceil(-10.2); // 返回-10.0
Math.ceil(10.9); // 返回11.0
Math.ceil(-10.9); // 返回-10.0

2.6 返回最接近参数的整数
public static int round(float f)
public static long round(double d)
返回最接近参数的整数。结果将舍入为整数:加上 1/2,对结果调用floor并将所得结果强制转换为 int 类型。换句话说,结果等于以下表达式的值:(int)Math.floor(a + 0.5f)。

举例:
Math.round(10); // 返回10
Math.round(10.2); // 返回10
Math.round(-10.2); // 返回-10
Math.round(10.9); // 返回11
Math.round(-10.9); // 返回-11

2.7 采用四舍五入的方式返回最接近参数的整数
public static double rint(double d)
返回最接近参数并等于某一整数的 double 值。如果两个同为整数的 double 值都同样接近,那么结果取偶数。

举例:
Math.rint(1); // 返回1.0
Math.rint(1.2); // 返回1.0
Math.rint(1.9); // 返回2.0
Math.rint(1.5); // 返回2.0(当小数为5时,对于整数1和2同样接近,但是2为偶数,所以结果为2)
Math.rint(2.5); // 返回2.0(当小数为5时,对于整数1和2同样接近,但是2为偶数,所以结果为2)

2.8 返回e的d次幂
public static double exp(double d)
返回e(即自然对数的底数)的d次幂的值。

举例:
Math.exp(0); // 返回1.0
Math.exp(2); // 返回7.38905609893065
Math.exp(3.3); // 返回27.112638920657883
Math.exp(-3.3); // 返回0.036883167401240015

2.9 返回e的d次幂减1
public static double expm1(double d)
返回e(即自然对数的底数)的d次幂减1的值。

举例:
Math.expm1(0); // 返回1.0
Math.expm1(2); // 返回6.38905609893065
Math.expm1(3.3); // 返回26.112638920657883
Math.expm1(-3.3); // 返回-0.96311683259876

2.10 返回a的b次幂
public static double pow(double a, double b)
返回第一个参数的第二个参数次幂的值。

举例:
Math.pow(2, 5); // 返回32.0
Math.pow(2, -5); // 返回0.03125
Math.pow(2.1, 5); // 返回40.84101000000001
Math.pow(-2, 5); // 返回-32.0
Math.pow(10, 0); // 返回1.0
Math.pow(0, 10); // 返回0.0

2.11 返回一个伪随机浮点数
public static double random()
返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。

举例:
Math.random(); // 返回:0.739333266112564(每次调用会得到不同的返回值)

2.12 返回正平方根
public static double sqrt(double d)
返回正确舍入的 double 值的正平方根。

举例:
Math.sqrt(0); // 返回0.0
Math.sqrt(4); // 返回2.0
Math.sqrt(-4); // 返回NaN
Math.sqrt(10.8); // 返回3.286335345030997

2.13 返回立方根
public static double cbrt(double d)
返回 double 值的立方根。

举例:
Math.cbrt(0); // 返回0.0
Math.cbrt(8); // 返回2.0
Math.cbrt(-8); // 返回-2.0
Math.cbrt(10.8); // 返回2.2104188991842317

2.14 角度和弧度转换
public static double toRadians(double angdeg)
将用角度表示的角转换为近似相等的用弧度表示的角。此转换通常是不精确的。
public static double toDegrees(double angrad)
将用弧度表示的角转换为近似相等的用角度表示的角。此转换通常是不精确的。

举例:
Math.toRadians(30); // 返回0.5235987755982988
Math.toRadians(90); // 返回1.5707963267948966
Math.toDegrees(0.5235987755982988); // 返回29.999999999999996
Math.toDegrees(1.5707963267948966); // 返回90.0

2.15 三角函数
public static double sin(double radians)
返回角的三角正弦。参数为弧度表示的角。
public static double sinh(double radians)
返回 double 值的双曲线正弦。参数为弧度表示的角。
public static double cos(double radians)
返回角的三角余弦。参数为弧度表示的角。
public static double cosh(double radians)
返回 double 值的双曲线余弦。参数为弧度表示的角。
public static double tan(double radians)
返回角的三角正切。参数为弧度表示的角。
public static double tanh(double radians)
返回 double 值的双曲线正切。参数为弧度表示的角。
public static double asin(double d)
返回一个值的反正弦;返回的角度范围在 -pi/2 到 pi/2 之间。参数为弧度表示的角。
public static double acos(double d)
返回一个值的反余弦;返回的角度范围在 0.0 到 pi 之间。参数为弧度表示的角。
public static double atan(double d)
返回一个值的反正切;返回的角度范围在 -pi/2 到 pi/2 之间。参数为弧度表示的角。
public static double atan2(double y, double x)
将矩形坐标 (x, y) 转换成极坐标 (r, theta),返回所得角 theta。该方法通过计算 y/x 的反正切值来计算相角 theta,范围为从 -pi 到 pi。

举例:
Math.sin(Math.toRadians(30)); // 返回0.49999999999999994
Math.sinh(Math.toRadians(30)); // 返回0.5478534738880397
Math.cos(Math.toRadians(30)); // 返回0.8660254037844387
Math.cosh(Math.toRadians(30)); // 返回1.1402383210764286
Math.tan(Math.toRadians(30)); // 返回0.5773502691896257
Math.tanh(Math.toRadians(30)); // 返回0.4804727781564516
Math.asin(Math.toRadians(30)); // 返回0.5510695830994463
Math.acos(Math.toRadians(30)); // 返回1.0197267436954502
Math.atan(Math.toRadians(30)); // 返回0.48234790710102493
Math.atan2(2, 3); // 返回0.5880026035475675

2.16 返回参数的符号
public static float signum(float f)
public static double signum(double d)
返回参数的符号函数;如果参数为 0,则返回 0;如果参数大于 0,则返回 1.0;如果参数小于 0,则返回 -1.0。

举例:
Math.signum(0); // 返回0.0
Math.signum(1); // 返回1.0
Math.signum(-1); // 返回-1.0
Math.signum(10); // 返回1.0
Math.signum(10.1); // 返回1.0

2.17 复制符号
public static float copySign(float magnitude, float sign)
public static double copySign(double magnitude, double sign)
返回带有第二个浮点参数符号的第一个浮点参数。

举例:
Math.copySign(-3, 0); // 返回3.0
Math.copySign(2, -3); // 返回-2.0
Math.copySign(3.3, -3); // 返回-3.3
Math.copySign(-3.3, 2.1); // 返回3.3

2.18 返回参数的对数
public static double log(double d)
返回参数的自然对数(底数是 e)。
public static double log10(double d)
返回参数的底数为 10 的对数。
public static double log1p(double d)
返回参数与 1 之和的自然对数(底数是 e)。注意,对于小的参数,log1p(d) 的结果比 log(1.0+d) 的浮点计算结果更接近 ln(1 + d) 的实际结果。

举例:
Math.log(10); // 返回2.302585092994046
Math.log10(10); // 返回1.0
Math.log1p(10); // 返回2.3978952727983707
 

相关内容

热门资讯

银行、消金公司助贷余额增速不得... 近日,中国证券报记者从多位业内人士处独家获悉,5月以来,多地金融监管部门对部分中小银行、消金公司下达...
朱鸿接任陈航,担任钉钉科技有限... 消费日报-今朝新闻讯 天眼查显示,6月23日,钉钉科技有限公司发生工商变更,陈航卸任法定代表人、董事...
3日累跌超20%,德创环保:公... 6月25日, 德创环保(603177.SH)公告,公司股票于2026年6月23日、6月24日和6月2...
北京发布2026年第七轮拟供商... 央广网北京6月25日消息(记者门庭婷)6月25日,北京市规划和自然资源委员会网站发布了2026年第七...
开放麦 | 启明创投胡奇:从A... “2026年,创投圈的浪潮再次翻涌:AI从技术概念走进产业深水区,硬科技创业从“小众赛道” 变成“主...
腾讯孙忠怀:在行业转身处 6月24日,2026腾讯视频年度发布在上海举行。腾讯公司副总裁、腾讯在线视频董事长孙忠怀以《在行业转...
加息,突变!美联储,重磅传来!... 美联储政策路径突生变数。 美国商务部经济分析局最新公布的数据显示,5月个人消费支出(PCE)物价指数...
6月合肥上门收金必看!5步避坑... 2026年6月,合肥黄金市场持续高位运行,不少市民翻出家里闲置的旧金饰、投资金条想变现,上门回收因为...
潮汕女富豪挂帅后加码液冷!祥鑫... 潮汕女强人,带着百亿公司加码液冷散热。 6月24日晚间,祥鑫科技(002965.SZ)公告称,公司董...
马斯克向太空要电,GobiX ... 一场关于「去哪里找电」的全球竞赛,正在朝两个方向展开。 作者|周永亮 编辑| 郑玄 「太空光伏是不是...
原料药行业陷入周期低谷 有药企... 每经记者|许立波 每经编辑|魏文艺 “过完年到现在,我们整个团队每个月都在出差,跑遍了亚非拉、欧美市...
家门口筛查白内障!永顺泽家镇暖... 大众卫生报·新湖南客户端6月25日讯(通讯员 彭雪姣)为切实解决辖区老年性白内障患者异地就医奔波、就...
终于等到!油价马上再大跌,这个... 点击添加图片描述(最多60个字) 编辑 各位车主朋友,好消息接二连三! 继6月18日油价大幅下调...
丈量出海新路 世界酒庄影响力指... 长期以来,全球酒庄评价体系由西方机构主导,且大多局限于单一酒种、单一评价维度,这一局面正逐渐被打破。...
峰瑞资本创始合伙人李丰:从资本... “2026年,创投圈的浪潮再次翻涌:AI从技术概念走进产业深水区,硬科技创业从“小众赛道” 变成“主...
原创 A... 迈向成熟,还有茁壮成长的机会。 作者 | 方璐 编辑丨于婞 来源 | 野马财经 2026年6月21日...
为企业解锁出海新通道!亚太中小... 6月24日下午,作为2026年APEC中小企业工商论坛的重要组成部分,亚太中小企业国际化合作发展论坛...
君赛生物港股IPO,增聘兴证国... 跟丰宜科技一样,正冲刺港股IPO的上海君赛生物股份有限公司(简称“君赛生物”)增聘一位整体协调人。 ...
圣邦股份明日上市:暗盘涨24%... 雷递网 雷建平 6月25日 圣邦微电子(北京)股份有限公司(简称:“圣邦股份”,股票代码:“0366...
科技“吃肉”,券商跟着“喝汤”... 当科技持续成为市场核心主线,押中硬科技项目的券商也成为被追逐的焦点。 6月24日,半导体零部件概念股...