Math类常用API详解
Math类中全部是静态方法,都可以用ClassName.funName()
| 字段 |
| double E 自然对数e |
| double PI 圆周率 |
三角函数
cos()余弦
| 参数是弧度。 弧度= 2 Math.PI /360 * 度数 比如:60度 = 2 * Math.PI / 360 * 60 |
| cos(60度) Math.cos( 1.0/3 * Math.PI) = 0.5 |
sin()正弦
| sin(30度) Math.sin(1.0 / 6 * Math.PI) = 0.5 |
tan()正切
| tan(45度) Math.tan(1.0 /4 * Math.PI) = 1 |
acos()反余弦
| acos(0.5) = Math.acos(0.5) / Math.PI * 180 = 60度 |
asin()反正弦
| asin(0.5) = Math.asin(0.5) / Math.PI * 180 = 30度 |
atan()反正切
| atan(1) = Math.atan(1.0) / Math.PI * 180 = 45度 |
角度转换
toDegrees()将弧度转为角度
| System.out.println(Math.toDegrees(Math.PI)); |
toRadians()将角度转弧度
| System.out.println(Math.toRadians(180)); |
求幂,开方,指数,对数
hypot(x,y) 返回x平方+y平方再求开方
| 经典的勾三股四弦五 |
| System.out.println(Math.hypot(3, 4)); |
cbrt(x)返回x的立方根
| System.out.println(Math.cbrt(27)); |
sprt(x)返回x的平方根
| System.out.println(Math.sqrt(4)); |
scalb(x,y)返回 x * 2^y
| System.out.println(Math.scalb(1.344, 2)); |
exp(x) 自然数e的x次方
| System.out.println(Math.exp(2.0)); |
pow(x,y)返回x的y次幂
| System.out.println(Math.pow(2, 3)); |
expm1()自然数e的x次方减1
| System.out.println(Math.expm1(2.0)); |
log1p(x) 求x + 1 以e为底的对数
| System.out.println(Math.log1p(1.718281828459045)); |
log(x)求x以e为底的对数
| System.out.println(Math.log(2.718281828459045)); |
log10(x)求x以10为底的对数
| System.out.println(Math.log10(10)); |
getExponent(x)返回以2为底x的指数
| System.out.println(Math.getExponent(1024)); |
取整、取模四舍五入
ceil()向上取整
| System.out.println(Math.ceil(3.6)); |
| System.out.println(Math.ceil(3.4)); |
floor()向下取整
| System.out.println(Math.floor(3.5)); |
floor(x,y) x除于y的值再向下取整
| System.out.println(Math.floorDiv(10, 4)); |
floorMod(x,y)返回x对y取模
| System.out.println(Math.floorMod(4, 2)); |
| System.out.println(Math.floorMod(3, 2)); |
rint()向靠近的数取整
| System.out.println(Math.rint(2.5)); |
| System.out.println(Math.rint(2.4)); |
| System.out.println(Math.rint(2.6)); |
| System.out.println(Math.rint(-2.6)); |
| System.out.println(Math.rint(-2.5)); |
| System.out.println(Math.rint(-2.4)); |
round() 四舍五入(负数有些和我们平常的不一样)
| System.out.println(Math.round(2.6)); |
| System.out.println(Math.round(2.5)); |
| System.out.println(Math.round(2.4)); |
| System.out.println(Math.round(-2.6)); |
| System.out.println(Math.round(-2.5)); |
| System.out.println(Math.round(-2.4)); |
返回加工后的数
abs()取绝对值
| System.out.println(Math.abs(-1)); |
| System.out.println(Math.abs(-1.1F)); |
| System.out.println(Math.abs(-1L)); |
| System.out.println(Math.abs(-1.0)); |
copySing(x,y)用y的符号返回第一个数的值
| System.out.println(Math.copySign(0.5, -1.0)); |
| System.out.println(Math.copySign(0.5f, 1.0f)); |
random()返回一个0-1之间的随机小数
| for (int i = 0; i < 10; i++) { |
| System.out.println(Math.random()); |
| } |
| |
| |
| |
| |
| |
signum返回大于0则为1,等于0为0,小于0为-1
| System.out.println(Math.signum(2.0)); |
| System.out.println(Math.signum(0.5)); |
| System.out.println(Math.signum(0)); |
| System.out.println(Math.signum(-1)); |
| |
toIntExact()将Long类型截取最大的Int类型
| System.out.println(Math.toIntExact(32134234312312321L)); |
nextAfter(x,y)返回x以y方向最相近的数
| -------2.5---->3.6--- |
| -----3.6<------4.5--- |
| System.out.println(Math.nextAfter(2.5, 3.6)); |
| System.out.println(Math.nextAfter(4.5, 3.6)); |
nextDown()、nextUp()返回以负无穷/正无穷大方向的最相近的数
| ----负无穷<----1.2233--- |
| ----1.2233---->正无穷--- |
| System.out.println(Math.nextDown(1.2233)); |
| System.out.println(Math.nextUp(1.2233)); |
返回一个或两个数之间的操作
decrementExact()返回一个减1的数超过返回则会报错
| System.out.println(Math.decrementExact(-1)); |
| System.out.println(Math.decrementExact(-2147483648)); |
incrementExact()返回一个增1的数超过返回则会报错
| System.out.println(Math.incrementExact(2147483647)); |
multiplyExact(x,y)返回x*y超出范围则报异常
| System.out.println(Math.multiplyExact(3, 4)); |
| System.out.println(Math.multiplyExact(3, 2147483647)); |
subtractExact(x,y)返回x-y,超出范围报错
| System.out.println(Math.subtractExact(3, 4)); |
| System.out.println(Math.subtractExact(3, 3)); |
| System.out.println(Math.subtractExact(3, 2)); |
| System.out.println(Math.subtractExact(-2, 2147483647)); |
addExact(x,y)返回两数之和,超过范围则会报相应的错误
| System.out.println(Math.addExact(2147483647, 23)); |
| |
| |
| System.out.println(Math.addExact(9223372036854775807L, 1L)); |
| |
negateExact(x)对x取反超出范围则报错
| System.out.println(Math.negateExact(2147483647)); |
| System.out.println(Math.negateExact(-2147483647)); |
| System.out.println(Math.negateExact(-2147483648)); |
最小最大值
max(x,y)求两数中最大的数
| System.out.println(Math.max(3, 4)); |
| System.out.println(Math.max(-3, -4)); |
| System.out.println(Math.max(Math.abs(-3), 4)); |
min(x,y)求两数中最小的数
| System.out.println(Math.min(3, 4)); |
| System.out.println(Math.min(-3, -4)); |
| System.out.println(Math.min(Math.abs(-3), 4)); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具