【java--工具类】数学相关

Math类
所属的包 java.lang,所以不需要导包,可以直接用
构造方法私有,因为提供的属性/方法都是static静态的
常用的方法
abs()返回给定数字的绝对值abs(-1.5);//1.5

ceil()向上取整ceil(1.5);//2
floor()向下取整floor(1.5);//1
round()四舍五入,返回值是int型 round(1.5);//2
rint()返回最接近参数的值,返回值是float型 ,注意rint(1.5);//2 都一样近时,取偶数

max(a,b)返回最大值
min(a,b)返回最小值

pow(a,b)两个参数都是float型,返回a的b次方
sqrt(a) 返回正确舍入的 double 值的正平方根

random() 随机返回 [0.0,1.0)这个区间的值
随机返回[1.10)区间的整数,这个好写 int value = (int)(Math.random()*10)

但是假如要随机返回 [5.0,10.9]之间的小数 ,也可以这样写float value = Math.random()*6 +5,但是这样很勉强,精确程度会有损失,也可能返回1.99,1.999,1.9965之类的小数

Random类
在java.util包中的类,需要import导入
没有任何继承关系,默认继承Object
只有一个接口Serializable
提供的常用方法:
nextInt()随机产生int取值范围的整数,有正有负
nextInt(a)随机产生 [0,a) 范围之间的整数 //这个方法不能传负数,否则会出现IllegalArgumentException异常
nextFloat()随机产生[0.0,1.0)范围之间的小数
nextBoolean()随机产生 true 或者 false

BigInteger类
这个类用来存储特别大的整数(超出long的范围)

所属的包java.math
继承自Number
我们一般用它提供的这个构造方法`BigInteger(String val)
类中常用方法:做四则运算的
package myutil;
import java.math.BigInteger;

public class Demo {

public static void main(String[] args){
    BigInteger bigInteger1 = new BigInteger("123");
    BigInteger bigInteger2 = new BigInteger("789");

    System.out.println(bigInteger1.add(bigInteger2));        //加
    System.out.println(bigInteger1.subtract(bigInteger2));   //减
    System.out.println(bigInteger1.multiply(bigInteger2));   //乘
    System.out.println(bigInteger1.divide(bigInteger2));    //除

}

}

设计一个方法,用来计算给定数字的阶乘(运用BigInteger类)

package myutil;
import java.math.BigInteger;

public class Demo {

public BigInteger factorial(int num){
    BigInteger result = new BigInteger("1");
    for(int i = 1; i <= num; i++){
        result = result.multiply(new BigInteger(i + ""));
    }
    return result;
}

public static void main(String[] args){
    Demo demo = new Demo();
    System.out.println(demo.factorial(50));
}

}

猜你喜欢

转载自blog.csdn.net/Wei_mo/article/details/89683396
今日推荐