版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_18948359/article/details/85270404
Math 类
Math 就是一个主们进行数字计算的操作类,该类提供了一系列的数学就当方法。在 Math 类中提供的一切方法都是 static 方法。下面介绍一下比较特殊的方法:
public class Demo {
public static void main(String[] args) {
// 绝对值
System.out.println(Math.abs(-1)); // 1
System.out.println(Math.round(15.5)); // 16
System.out.println(Math.round(15.6)); // 16
System.out.println(Math.round(-15.5)); // -15
System.out.println(Math.round(-15.51)); // -16
}
}
从上面的输出结果,可以发现数据小数位>0.5才进位,<=0.5不进位
Random 类
这类的主要功能是取得随机数的操作类。
随机产生10个0~99正整数
import java.util.Random;
public class Demo {
public static void main(String[] args) {
Random ran = new Random();
for (int i = 0; i < 10; i++) {
System.out.print(ran.nextInt(100) + " ");
}
}
}
输出结果:
15 55 30 5 43 74 23 42 58 76
通过 Random 类实现 36选7的程序
最大值为36,所有边界的数值为37,并且里面不能够有0或者重复的数据。
import java.util.Arrays;
import java.util.Random;
public class Demo {
public static void main(String[] args) {
Random ran = new Random();
int[] data = new int[7]; //选出来的数据数组
int foot = 0;
while (foot < 7) {
int rnum = ran.nextInt(36); // 最大值为 37
if (!(isRepeat(data, rnum))) {
data[foot++] = rnum;
}
}
Arrays.sort(data); // 对数据进行排序
System.out.print("36选7:");
for (int i = 0; i < data.length; i++) {
System.out.print(data[i] + " ");
}
}
public static boolean isRepeat(int[] temp, int num) {
if (num == 0) {
return true;
}
for (int i = 0; i < temp.length; i++) {
if (temp[i] == num) {
return true;
}
}
return false;
}
}
结果输出:
36选7:2 4 6 9 19 21 32
大整数操作类
BigInteger类
如果我们需要操作的数据值很大,那么我们首先想到的应该是 double ,如果我们使用计算值超过了 double,那么现在我们可以使用 BigInteger(大整形) 或者 BigDecimal(大浮点型)了。
import java.math.BigInteger;
public class Demo {
public static void main(String[] args) {
BigInteger bigA = new BigInteger("35564564178895");
BigInteger bigB = new BigInteger("16544664623186");
System.out.println("加法:" + bigA.add(bigB));
System.out.println("减法:" + bigA.subtract(bigB));
System.out.println("乘法:" + bigA.multiply(bigB));
System.out.println("除法:" + bigA.divide(bigB));
}
}
控制台输出:
加法:52109228802081
减法:19019899555709
乘法:588403786809592158668859470
除法:2
BigDecimal 类
BigInteger 不能够保存小数,而BigDemial 可以保存小数数据。一般我们使用该类在做为我们四舍五入的操作。
BigDemial中提供的一个方法:
public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
- BigDecimal divisor:被除数
- int scale:保留的小数位
- int roundingMode: 进位模式。(public static final int ROUND_HALF_UP)
import java.math.BigDecimal;
class MyMath {
public static double divide(double num, int scal) {
BigDecimal bigA = new BigDecimal(num);
BigDecimal bigB = new BigDecimal(1);
return bigA.divide(bigB, scal, BigDecimal.ROUND_HALF_UP).doubleValue();
}
}
public class Demo {
public static void main(String[] args) {
System.out.println(MyMath.divide(19.48789789, 3)); // 19.488
System.out.println(MyMath.divide(-15.5, 0)); // -16.0
System.out.println(MyMath.divide(15.5, 0)); // -16
}
}