Java基础Math类和Arrays类4月打卡day20
Java基础Math类和Arrays类4月打卡day20
关于作者
-
作者介绍
🍓 博客主页:
🍓 简介:JAVA领域优质创作者🥇、一名在校大三学生🎓、在校期间参加各种省赛、国赛,斩获一系列荣誉🏆。
🍓 关注我:关注我学习资料、文档下载统统都有,每日定时更新文章,励志做一名JAVA资深程序猿👨💻。
1、 数字操作类—Math类
在Java.lang.Math类之中定义了所有的于数学有关的基本公式,在这个类之中所有的方法都是static型的方法,强调一个方法:round(),public static long round(double a),表示四舍五入。
package com.day13.demo;
public class MathDemo {
public static void main(String[] args) {
System.out.println(Math.round(13.51));
System.out.println(Math.round(13.5));
//如果负数小数,没大于0.5都不进位
System.out.println(Math.round(-13.51));
System.out.println(Math.round(-13.5));//-13
}
}
希望可以准确的保存小数位进行处理。
需要保留几位小数
package com.day13.demo;
class MyMath{
public static double round(double num, int scale){
return Math.round(num * Math.pow(10, scale)) / Math.pow(10, scale);
}
}
public class MathDemo {
public static void main(String[] args) {
//1234.457
System.out.println(MyMath.round(1234.4567, 3));
}
}
1.1 随机数—Random()
Java .util.Random的主要主要作用就是产生随机数,下面通过一个代码来观察就行。
网站开发的随机验证码
package com.day13.demo;
import java.util.Random;
public class RandomDemo {
public static void main(String[] args) {
char data [] = new char[]{'a','b','c','d','e'};
for (int i = 0; i < 4; i++) {
System.out.print(data[new Random().nextInt(data.length)]);
}
}
}
1.2 大数字操作类
如果说现在有两个非常大的数字要进行数学操作,你们认为要怎么做?这个时候数字已经超过了double的范围,那么只能利用字符串来表示,取出每一个字符串变为数字后进行数学计算,这种方式的难度较高,为了解决这种问题,在Java之中提供了两个大数字操作类:java.math包中BigInteger,BigDecimal,而这两个类是属于Number的子类。
1.大整数操作类:BigIntegr
之前已经强调过了,如果数字较大,肯定按照String来处理,所以这一点可以通过Biginteger的构造方法来观察:
构造:public BigInteger(String val);
而且在BigInteger类之中定义了一些基本的数学计算:
加法:public BigInteger add(BigInteger val);
减法:public BigInteger subtract(BigInteger val);
乘法:public BigInteger multiply(BigInteger val);
除法(不保存余数):public BigInteger divide(BigInteger val);
除法(保存余数):public BigInteger divideAndRemainder(BigInteger val)
大数的四则运算
package com.day13.demo;
import java.math.BigInteger;
public class BigAddDemo {
public static void main(String[] args) {
BigInteger bigA = new BigInteger("123712487812974891274891274128947891");
BigInteger bigB = new BigInteger("43895748395789347589347589398");
System.out.println("加法计算:" + bigA.add(bigB));
System.out.println("减法计算:" + bigA.subtract(bigB));
System.out.println("乘法计算:" + bigA.multiply(bigB));
System.out.println("除法计算:" + bigA.divide(bigB));
BigInteger result[] = bigA.divideAndRemainder(bigB);
System.out.println("除法计算:" + result[0] + "." + result[1]);
}
}
2.大小数操作类:BigDcimal
BigDecimal类表示的是大小数操作类,但是这个类也具备了于之前同样的基本计算方式,而在实际的工作之中,是用这个类最多的情况是进行准确位数的四舍五入操作,如果要完成这一操作需要关心BigDecimal类中的以下定义:
构造:public BigDecimal(double val);
除法:public BigDecimal divide(BigDecimal divisor ,int scale ,int roundingMode);
进位模式:public static final int ROUND_HALF_UP。
四舍五入进位操作
package com.day13.demo;
import java.math.BigDecimal;
//大数进位方法
class MyMath1{
public static double round(double num, int scale){
return new BigDecimal(num).divide(new BigDecimal(1), scale, BigDecimal.ROUND_HALF_DOWN).doubleValue();
}
}
public class BigDecimalDemo {
public static void main(String[] args) {
System.out.println(MyMath1.round(2138845.4567, 3));
}
}
2、Arrays类
排序操作:java.util.Arrays.sort(数组名称),对于Arrays类一直是进行数组排序的操作,类一直进行数组排序的操作,而Arrays类是定义在java.util包下的一个操作类,在这个类之中定义了所有的与数组有关的基本操作:二分查找,拷贝操作,相等判断,填充,变为字符串输出等。
package com.day13.demo;
import java.util.Arrays;
public class ArraysDemo {
public static void main(String[] args) {
int dataA[] = new int []{1,2,3,4,5,6};
int dataB[] = new int []{1,2,3,4,5,6};
//数组输出
System.out.println(Arrays.toString(dataA));
//两个数组进行比较
System.out.println(Arrays.equals(dataA,dataB));
//数组二分法查找
System.out.println(Arrays.binarySearch(dataA, 4)+1);
}
}
- 点赞
- 收藏
- 关注作者
评论(0)