网站首页 > 技术文章 正文
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-11-09 极客算法训练笔记(十),十大经典排序之计数排序、基数排序
- 2024-11-09 Axure RP 9 学习笔记 - 常用数学函数
- 2024-11-09 判断坐标点是否在高德地图围栏内的算法?
- 2024-11-09 Quick Pow: 如何快速求幂 快速幂算法
- 2024-11-09 十六、Java运算符-优先级与表达式
- 2024-11-09 抖音B站…推荐机制的原型,威尔逊得分排序算法
- 2024-11-09 浅谈移动设备交互体验之惯性滚动 惯性移轴定理
- 2024-11-09 JS中常见的Math对象 javascript中math
- 2024-11-09 力扣73——矩阵置零 矩阵置0
- 2024-11-09 基数排序的1个小技巧,2种排序方式,3种排序算法
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-