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
 

相关内容

热门资讯

企业IP打造指南:小公司低成本... 小公司做企业IP,不是为了装门面,而是让客户在没见到你之前,就能通过内容知道你是谁、你解决什么问题、...
官方:赵心童入选世界斯诺克名人... 北京时间5月8日消息,世界斯诺克巡回赛(WST)今日正式公布了2025/26赛季年终奖项及名人堂更新...
小灰熊AI学员王锋:希望能跟上... 35了,老程序员了。 从进入互联网行业到现在,其实已经做了很多年移动端开发。最早那几年,安卓行业发展...
原创 2... 2026年全国两会把稳定房地产市场列为重点工作,政府工作报告明确提出因城施策控增量、去库存、优供给。...
一年翻倍,六年未归——徽商银行... 文:向善财经 今年的港股市场,与A股市场出现了明显的分化。 A股这边,科技板块在AI浪潮中热闹非凡;...
古井贡酒2025:在行业深度调... 以“稳”为底、以“新”为翼。 文/每日财报 杜康 在行业库存高企、价格倒挂的背景下,当多数酒企在为...
好上好8408万收购鼎瑞芯加码... 5月7日晚,好上好(001298.SZ)抛出一份收购公告,拟以8408万元现金收购深圳市鼎瑞芯科技有...
全面大撤离!李嘉诚英国“套现”... 突发,李嘉诚又卖了。 这次,套现了455亿。 金额不少,但更值得关注的是透露着不同寻常的信号。 因为...
油气价格上涨加剧法国一季度贸易... 据新华社,法国海关7日发布的数据显示,受中东局势推高国际油气价格影响,法国今年第一季度贸易逆差扩大至...
昆仑芯启动科创板IPO上市辅导... 5月8日,据证监会官网显示,昆仑芯(北京)科技股份有限公司于2026年5月7日正式启动科创板上市辅导...
贵州茅台酒股份有限公司关于回购... 来源:上海证券报 证券代码:600519 证券简称:贵州茅台 公告编号:临2026-016 贵州茅...
百度昆仑芯启动科创板上市辅导,... 5月8日,证监会官网显示,昆仑芯(北京)科技股份有限公司 (下称“昆仑芯”)于2026年5月7日正式...
滕州信华的承压时刻:罚单、失信... 2026年4月末,滕州信华美元债单日跌近2%,关联方被列“老赖”。半年前,这家AA+城投曾因非市场化...
002808,或被终止上市! 【导读】因触及财务类退市指标,*ST恒久或被终止上市 中国基金报记者 李智 又一A股或被终止上市。 ...
院士团队掌舵,溧阳这家企业已完... 近日,溧阳天目先导电池材料科技有限公司(下称“天目先导”)官宣完成B轮融资,投资方包括知卓创新资本、...
工商银行全新推出“工盈研选”品... 深圳商报·读创客户端记者 詹钰叶 近日,工商银行重磅推出「工盈研选」基金销售服务品牌,以客户盈利为核...
和讯信息胡云龙:逼空走势,周五... 今天市场出现逼空走势,场内投资者因持有筹码而尤为受益。五一前布局的投资者当前收获颇丰。然而,随着上证...
今晚,油价上调! 4月21日国内成品油价格下调以来,国际市场原油价格剧烈震荡,前期大幅上涨后近日有所回落,本次调价的前...
南方东英旗下两倍做多海力士,成... 【导读】南方东英旗下两倍做多海力士,成为全球最大的个股杠杆及反向产品 中国基金报记者 伊万 人工智能...
原创 金... 黄金,这东西从古至今就没离开过中国人的生活。从老辈人压箱底的小黄鱼,到如今年轻人结婚绕不开的“三金”...