当前位置: 首页 > news >正文

Java基础:Math工具类全方位详解

简介:本篇详细讲解java.lang.Math常用常量、取整、随机数、幂运算等API,搭配实操代码,适合新手收藏复习。
一、概述
java.lang.Math是Java自带数学工具类,全部成员静态修饰,无需new创建对象,无需手动导包,专门封装数学计算相关方法,日常数值运算、随机数生成、几何计算、算法开发频繁使用。
二、Math内置静态常量
Math提供两个常用数学常量:
Math.PI:圆周率π
Math.E:自然对数底数e
public class MathTest {
public static void main(String[] args) {
System.out.println(Math.PI);
System.out.println(Math.E);
}
}
三、核心常用API分类
3.1 绝对值、最大值、最小值
abs(数值):获取绝对值,支持int、long、float、double
max(a,b):获取两个数最大值
min(a,b):获取两个数最小值
System.out.println(Math.abs(-6.8));
System.out.println(Math.max(15,32));
System.out.println(Math.min(9,2));
3.2 三种取整方式(面试高频)
ceil():向上取整,向数轴正方向取值
floor():向下取整,向数轴负方向取值
round():四舍五入取整
System.out.println(Math.ceil(2.1)); //3.0
System.out.println(Math.floor(2.9));//2.0
System.out.println(Math.round(2.5));//3
3.3 开方与幂运算
sqrt(double):算术平方根
pow(a,b):a的b次方
System.out.println(Math.sqrt(64));
System.out.println(Math.pow(3,2));//3²
3.4 随机数 random()
Math.random():返回[0.0,1.0)区间随机小数
固定公式:生成 [min,max] 整数
(int)(Math.random()*(max-min+1)+min)
//生成1~10随机整数
int ran = (int)(Math.random()*10+1);
System.out.println(ran);
3.5 三角函数(参数为弧度)
System.out.println(Math.sin(Math.PI/2));//sin90°
System.out.println(Math.cos(Math.PI)); //cos180°
四、实战案例:结合图形类求随机圆面积
衔接上一篇Shape抽象类代码,随机半径计算圆形面积
//半径范围1~10
double r = (int)(Math.random()*10+1);
double area = Math.PI * Math.pow(r,2);
System.out.println("半径:"+r+",圆面积:"+area);
五、注意事项与总结
Math所有方法都是static,使用:Math.方法名();
double存在精度缺失,金融高精度计算用BigDecimal;
随机数需求简单用Math.random(),大量随机优先Random类。
六、课后思考题(可用于作业/自测)
题目1:代码输出题
public class Test{
public static void main(String[] args){
double num = 4.39;
System.out.println(Math.ceil(num));
System.out.println(Math.floor(num));
System.out.println(Math.round(num));
}
}
思考:打印结果分别是多少?
题目2:编程题1
使用Math方法,随机生成5个[10,30]之间的整数,遍历打印所有数字。
题目3:编程题2
输入一个圆的随机半径(范围2~15),利用Math.PI和Math.pow计算周长与面积。
题目4:简答题
Math中方法为什么不用实例化对象就能调用?
Math.random()取值范围是左闭右开还是全闭区间?
七、拓展
后续更新Random随机类、BigDecimal高精度运算,关注不迷路。

http://www.gsyq.cn/news/1450609.html

相关文章:

  • 防火墙为什么能根据 IP 地址过滤?IP 不是会变的吗?
  • 自指螺旋与电子内禀自旋的对应关系推导(世毫九实验室原创研究)
  • 如何用Python自动化抢票神器告别演唱会门票秒光烦恼
  • Prompt调优避坑手册,为什么你写的总差点意思
  • QKeyMapper终极指南:5分钟掌握Windows最强免费按键映射工具
  • 大模型预训练数据工程中针对 Milvus向量数据库分区分片设计 低质量文本的启发式过滤算法优化路径
  • 知乎专栏文章爬虫实战:从登录态维持到数据持久化的完整指南,爬取知乎专栏文章(标题、点赞数、内容)o 技术点:登录与Cookie维持
  • Perseus碧蓝航线脚本补丁:终极全皮肤解锁完整指南
  • 从Jupyter Notebook裸跑→ISO/IEC 23053合规实验体系:一位CTO的36小时紧急迁移实录(含Checklist与脚本包)
  • 【移动测试】跨平台 UI 一致性检查:VLM 对比 iOS 与 Android 端渲染差异的自动化方案
  • 鸣潮模组实战指南:3种创新方案优化游戏体验
  • ripgrep 15.1.0 官方版下载(夸克网盘+百度网盘,SHA256校验)
  • 记录利用Cursor快速实现首页数据大屏
  • 高效使用Studio Library:5个提升Maya动画工作效率的实战技巧
  • 【LeetCode刷题日记】77216.回溯算法剪枝优化在组合问题中的应用
  • AnywhereVLA框架:语言驱动的机器人移动操作系统
  • AI时代下,Java程序员还要看源码吗?
  • Transformer模型在表格数据合成中的性能优化与实践
  • LinkSwift:八大网盘直链解析神器,告别限速烦恼
  • 从SVD到RANSAC:点云平面拟合的数学原理与Python代码逐行解析(避坑参数设置)
  • defer性能陷阱:我是如何解决内存逃逸问题的
  • WzComparerR2 终极指南:冒险岛WZ文件提取器的完整使用教程
  • 有哪些真正好用且不贵的 AI 写作软件?100 小时深度体验后我来交作业了
  • 5分钟搞定RabbitMQ!Docker一键安装 + 核心概念图解
  • 全国哪家台球厅设计公司的口碑较好? - myqiye
  • 985计算机水硕,转大模型应用开发的感悟
  • 圆偏振光+磁控溅射AR膜实测:iPhone17 Pro Max强光下反射率≤0.5%,久看不累——观复盾体验
  • 当你的排查助手变成了AI:大模型辅助根因分析在线上故障排查中的应用
  • 虚拟机配置终端连接,出现:因为在此系统上禁止运行脚本。有关详细信息请参阅 https:/go.microsoft.con/fwlink/?LinkID=13517e
  • 微前端架构下实现子应用间虚拟DOM Diff算法原理与沙箱隔离方案