所属的包:java.lang
Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。
Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。
通常的方法
方法 | 描述 |
---|---|
E abs(E) | 返回指定参数的绝对值(E:int,long,float,double) |
double ceil(double) | 向上取整 |
double floor(double) | 向下取整 |
double rint(double) | 取临近的整数(如果两边距离一样,则返回偶数) |
int round() | 返回四舍五入的整数 |
E max(E, E) | 取两个数中较大的数(E:int,long,float,double) |
E min(E, E) | 取两个数中较小的数(E:int,long,float,double) |
double pow(double, double) | 将第一个参数的值返回到第二个参数的幂 |
double sqrt(double) | 获取给定参数的平方根 |
double random() | 产生一个[0.0-1.0)的随机数 |
public class Test{
publlic static void main(String[] args){
System.out.println(Math.ceil(1.4));//1.0
System.out.println(Math.floor(1.4));//1.0
System.out.println(Math.rint(1.4));//1.0
System.out.println(Math.round(1.4));//1.0
System.out.println(Math.sqrt(16));//4.0
}
}
实例:
public class Test{
public static void main(Sting[] args){
//产生一个0-9的随机整数
int value = (int)(Math.random() * 10);
System.out.println(value);
}
}
所属的包:java.util
没有任何继承关系,默认继承Object类。
所有的方法都需要使用new对象调用。
构造方法:
Random random = new Random();
常用的方法:
方法 | 描述 |
---|---|
int nextInt() | 随机产生一个int取值范围的整数 |
int nextInt(int bound) | 随机产生一个[0-bounf)的整数 |
float nextFloat() | 随机产生一个[0.0-1.0)的值 |
boolean nextBoolean() | 随机产生一个boolean的值 |
所属的包:java.util
没有任何继承关系,默认继承Object类
虽然有构造方法,但是一般不会创建对象
public class Test{
public static void main(String[] args){
UUID uuid = UUID.randomUUID();
System.out.println(uuid.toString());//数据库表格主键 primary key
产生一个32位的随机元素 每一个位置是一个16进制的数字
}
}
所属的包:java.math
继承Number类
提供的构造方法都是带参数的,通常利用带String参数的构造方法创建这个类的对象
BigInteger类可以描述比long类型大的数据,可以解决数据溢出的问题,
常用方法:做四则运算
add() subtract() multiply() divide()
//设计一个方法 用来计算给定数字的阶乘
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 class Test{
public static void main(String[] args){
BigInteger big1 = new BigInteger("123");
BigInteger big2 = new BigInteger("456");
big1.add(big2);
big1.subtract(big2);
big1.multiply(big2);
big1.divide(big2);
//创建对象 调用计算阶乘的方法
TestMath tm = new TestMath();
BigInteger bi = tm.factorial(10);
System.out.println(bi.toString());
}
}
所属的包:java.math
继承Number类
提供的构造方法都是带参数的,通常利用带String参数的构造方法创建这个类的对象
BigDecimal 类则是针对很大的小数的处理类精度比较高,可以处理金融类业务,如果对计算的数据要求高精度时,必须使用BigDecimal类
常用方法:做四则运算
add() subtract() multiply() divide()
public class Test{
public static void main(String[] args){
BigDecimal bd = new BigDecimal("123.456");
//小数点之后保留两位 按照向下取整的方式进行截取
bd = bd.setScale(2,BigDecimal.ROUND_DOWN);
System.out.println(bd);//123.45
}
}
所属的包:java.text
通过String参数的构造方法创建一个格式化对象
public class Test{
public static void main(String[] args){
DecimalFormat df = new DecimalFormat("000.###");//0表示必须有 #表示可有可无 四舍五入原则
String value = df.format(123.456789);
System.out.println(value);//123.457
}
}