网站首页 > java教程 正文
Java中Math函数的使用
说到Java中的Math函数,大家肯定不陌生,但是在真正使用的时候却犯了难,那么多方法,我们到底需要使用哪个呢?
为此,我特地研究了一些Math常用函数的使用,以方便大家使用。
算术计算
- Math.sqrt() : 计算平方根
- Math.cbrt() : 计算立方根
- Math.pow(a, b) : 计算a的b次方
- Math.max( , ) : 计算最大值
- Math.min( , ) : 计算最小值
- Math.abs() : 取绝对值
System.out.println(Math.sqrt(16)); // 4.0
System.out.println(Math.cbrt(8)); // 2.0
System.out.println(Math.pow(3, 2)); // 9.0
System.out.println(Math.max(2.3, 4.5));// 4.5
System.out.println(Math.min(2.3, 4.5));// 2.3
/**
* abs求绝对值
*/
System.out.println(Math.abs(-10.4)); // 10.4
System.out.println(Math.abs(10.1)); // 10.1
进位
- Math.ceil(): 天花板的意思,就是逢余进一
- Math.floor() : 地板的意思,就是逢余舍一
- Math.rint(): 四舍五入,返回double值。注意.5的时候会取偶数
- Math.round(): 四舍五入,float时返回int值,double时返回long值
/**
* ceil天花板的意思,就是逢余进一
*/
System.out.println(Math.ceil(-10.1)); // -10.0
System.out.println(Math.ceil(10.7)); // 11.0
System.out.println(Math.ceil(-0.7)); // -0.0
System.out.println(Math.ceil(0.0)); // 0.0
System.out.println(Math.ceil(-0.0)); // -0.0
System.out.println(Math.ceil(-1.7)); // -1.0
System.out.println("-------------------");
/**
* floor地板的意思,就是逢余舍一
*/
System.out.println(Math.floor(-10.1)); // -11.0
System.out.println(Math.floor(10.7)); // 10.0
System.out.println(Math.floor(-0.7)); // -1.0
System.out.println(Math.floor(0.0)); // 0.0
System.out.println(Math.floor(-0.0)); // -0.0
System.out.println("-------------------");
/**
* rint 四舍五入,返回double值 注意.5的时候会取偶数 异常的尴尬=。=
*/
System.out.println(Math.rint(10.1)); // 10.0
System.out.println(Math.rint(10.7)); // 11.0
System.out.println(Math.rint(11.5)); // 12.0
System.out.println(Math.rint(10.5)); // 10.0
System.out.println(Math.rint(10.51)); // 11.0
System.out.println(Math.rint(-10.5)); // -10.0
System.out.println(Math.rint(-11.5)); // -12.0
System.out.println(Math.rint(-10.51)); // -11.0
System.out.println(Math.rint(-10.6)); // -11.0
System.out.println(Math.rint(-10.2)); // -10.0
System.out.println("-------------------");
/**
* round 四舍五入,float时返回int值,double时返回long值
*/
System.out.println(Math.round(10)); // 10
System.out.println(Math.round(10.1)); // 10
System.out.println(Math.round(10.7)); // 11
System.out.println(Math.round(10.5)); // 11
System.out.println(Math.round(10.51)); // 11
System.out.println(Math.round(-10.5)); // -10
System.out.println(Math.round(-10.51)); // -11
System.out.println(Math.round(-10.6)); // -11
System.out.println(Math.round(-10.2)); // -10
【注意】这里有一个非常需要注意的一点是:这里所有进位的方法的入参都要保证是float或者double类型,否则进位方法将毫无意义。例如如下我们经常犯的错误:
int a = 1300, b = 1000;
System.out.println(Math.ceil(a / b)); // 1 表达式A(错误使用)
System.out.println(Math.ceil(a / (float)b)); // 2 表达式B(正确使用)
看上去表达式A和表达式B没有什么区别,可仔细分析可知:a / b = 1 ,而 a / (float)b = 1.3, 实际上表达式A的Math.ceil()根本起不了任何作用。
随机数
- Math.random(): 取得一个[0, 1)范围内的随机数
System.out.println(Math.random()); // [0, 1)的double类型的数
System.out.println(Math.random() * 2);//[0, 2)的double类型的数
System.out.println(Math.random() * 2 + 1);// [1, 3)的double类型的数
我是xuexiangjys,一枚热爱学习,爱好编程,勤于思考,致力于Android架构研究以及开源项目经验分享的技术up主。获取更多资讯,欢迎微信搜索公众号:【我的Android开源之旅】
猜你喜欢
- 2024-10-24 Bigo的Java面试,我挂在了第三轮技术面上...
- 2024-10-24 纯干货|盘点Java常见的30个误区与细节
- 2024-10-24 JAVA中红黑树(javahashmap红黑树)
- 2024-10-24 一文让你理解java中的类加载器(java类加载器的作用)
- 2024-10-24 初识java—(三十五)Math类、Random类和BigDecimal类
- 2024-10-24 Java高级进阶-从计算机底层解析左移、右移、无符号右移
- 2024-10-24 终于有人把Git最火Java全套详细笔记(吐血放出)资料给分享出来了
- 2024-10-24 【算法题】1749. 任意子数组和的绝对值的最大值
- 2024-10-24 Java 的流程控制是什么样子的(java中的流程控制语句有哪些)
- 2024-10-24 Java常用内置函数(java内部类怎么调用)
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)