您的位置 首页 java

初识java—(三十五)Math类、Random类和BigDecimal类

7.3.3 Math类

Java 提供了最简单加、减、乘、除、取模等基本运算。同时还提供了Math类来进行更复杂的数学运算。

static abs(Xxx xx):将基本数据类型转换成其绝对值返回。

static max(Xxx a,Xxx b):返回两个值中较大的一个

static min(Xxx a,Xxx b):返回两个值中较小的一个

static pow(double a,double b):返回第一个参数的第二个参数次幂的值。

static double random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。

 public static  void  main(String[] args) throws  Exception {
//取某一个范围内的随机数
for(int i=0;i<5;i++){
System.out.println((int)(Math.random()*100));
}
}  

一个小例题:

如何取得给定任意范围内的随机数?

 public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int start = scan.nextInt();
int end = scan.nextInt();
System.out.println(getRan(start,end));
}
public static int getRan(int start,int end){
int number = (int)(Math.random()*(end-start+1)+start);
return number;
}  

7.3.4 Random类

Random类专门用于生成一个随机数。主要方法为:nextXxx(Xxx xxx)

public Random():创建一个新的随机数生成器。

Random(long seed):使用单个 long 种子创建一个新的随机数生成器。给定种子后,每次得到的随机数是相同的。

static Xxx nextInt(int n):返回该类型的一个随机数。返回的范围是[0,n)范围内的随机数。

static Xxx nextInt():返回该类型的一个随机数。返回的范围是int范围内的随机数。

7.3.5 BigDecimal类

double、float浮点数在进行数据基本运算时会发生数据丢失现象,这种情况不仅仅是在Java语言中,在其他语言中同样存在。例如:

 public static void main(String[] args) throws Exception{
System.out.println(0.05+0.01);
System.out.println(1.0-0.42);
System.out.println(4.015*100);
System.out.println(123.3/100);
}  

Java提供了 BigDecimal 类,用于处理进行基本运算发生的数据丢失问题。

使用BigDecimal构造器创建对象时,建议优先使用 String 类型对象作为参数传入进行初始化。

 举例: BigDecimal decimal = new BigDecimal(“12.5”);  

BigDecimal类提供了add()、subtract()、multiply()、divide()、pow(int n)、等方法对精确 浮点数 进行常规算术运算。

举例1:

 public static void main(String[] args) throws Exception{
BigDecimal b1 = new BigDecimal("0.05");
BigDecimal b2 = new BigDecimal("0.01");
System.out.println(b1.add(b2).floatValue());
b1 = new BigDecimal("1.0");
b2 = new BigDecimal("0.42");
System.out.println(b1.subtract(b2).floatValue());
b1 = new BigDecimal("4.015");
b2 = new BigDecimal("100");
System.out.println(b1.multiply(b2).floatValue());
b1 = new BigDecimal("123.3");
b2 = new BigDecimal("100");
System.out.println(b1.divide(b2).floatValue());
}
  

文章来源:智云一二三科技

文章标题:初识java—(三十五)Math类、Random类和BigDecimal类

文章地址:https://www.zhihuclub.com/187515.shtml

关于作者: 智云科技

热门文章

网站地图