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
 

相关内容

热门资讯

山西太钢不锈钢股份有限公司 2... 来源:证券日报 证券代码:000825 证券简称:太钢不锈 公告编号:2026-001 本公司及董...
把自己的银行贷款出借给别人,有... 新京报讯(记者张静姝 通讯员邸越洋)因贷款出借后未被归还,原告牛女士将被告杨甲、杨乙诉至法院,要求二...
金价暴跌,刚买的金饰能退吗?有... 黄金价格大跌,多品牌设置退货手续费。 在过去两三天,现货黄金价格经历了“过山车”般的行情,受金价下跌...
预计赚超2500万!“豆腐大王... 图片来源:图虫创意 在经历了一年亏损后,“豆腐大王”祖名股份(003030.SZ)成功实现扭亏为盈。...
特朗普提名“自己人”沃什执掌美... 据新华社报道,当地时间1月30日,美国总统特朗普通过社交媒体宣布,提名美国联邦储备委员会前理事凯文·...
爱芯元智将上市:连年大额亏损,... 撰稿|多客 来源|贝多商业&贝多财经 1月30日,爱芯元智半导体股份有限公司(下称“爱芯元智”,HK...
一夜之间,10只A股拉响警报:... 【导读】深康佳A等10家公司昨夜拉响退市警报 中国基金报记者 夏天 1月30日晚间,A股市场迎来一波...
谁在操控淳厚基金?左季庆为谁趟... 2026年1月6日,证监会一纸批复核准上海长宁国有资产经营投资有限公司(下称“长宁国资”)成为淳厚基...
工商银行党委副书记、行长刘珺会... 人民财讯1月31日电,1月29日,工商银行党委副书记、行长刘珺会见来访的上海电气集团党委书记、董事长...
布米普特拉北京投资基金管理有限... 从亚马逊到联合包裹,一场席卷美国企业的“瘦身”行动正在持续。多家企业近期承认,近年来的扩张步伐迈得过...
酒价内参1月31日价格发布 飞... 来源:酒业内参 新浪财经“酒价内参”过去24小时收集的数据显示,中国白酒市场十大单品的终端零售均价在...
筹码集中的绩优滞涨热门赛道股出... 2025年以来,在受多重因素的刺激下,科技、航天、基础化工等热门赛道中走出轮番上涨的结构性行情,其中...
2026年A股上市公司退市潮开... 来源:界面新闻 界面新闻记者 赵阳戈 随着2026年序幕拉开,A股市场新一轮“出清”即将上演。...
雷军官宣新直播:走进小米汽车工... 【太平洋科技快讯】1 月 31 日消息,小米创办人、董事长兼 CEO 雷军在社交媒体发文宣布,将于 ...
现货黄金直线跳水,跌破5200... 新闻荐读 1月29日晚,现货黄金白银快速走低,回吐盘中全部涨幅。23:15左右,现货黄金跌破5300...
加拿大拟与多国联合设立国防银行 新华社北京1月31日电 加拿大财政部长商鹏飞1月30日说,加拿大将在未来数月与国际伙伴密切合作,推进...
马斯克大消息!SpaceX申请... 据券商中国,美东时间1月30日,路透社报道,据两位知情人士透露,马斯克旗下SpaceX公司2025年...
澳网:雷巴金娜2-1萨巴伦卡女... 北京时间1月31日,2026赛季网球大满贯澳大利亚公开赛继续进行,在女单决赛中,5号种子雷巴金娜6-...
春节前白酒促销热:“扫码抽黄金... 春节临近,白酒市场再现价格异动。 近日,飞天茅台批价拉升,有酒商直言“年前要冲2000元关口”,引发...