Math
类是包含用于执行基本数学运算的方法的数学工具类,如初等指数、对数、平方根和三角函数。
类似这样的工具类[L1] ,其所有方法均为静态方法,并且一般不会创建对象。如System类
工具类,代表能够完成一系列功能的类,在使用它们时,不用创建对象,该类中方法为静态方法
求绝对值:Math.abs(-90.3);结果90.3
向上取整(就是算12.9结果也是13):Math.ceil(12.1)结果13;
向下取整(就算是12.9结果也是12):Math.floor(12.1)结果是12
四舍五入:
Math.round(12.4)结果是12;
Math.round(12.9)结果是13;
获取两个数的最大值:Math.max(22,12)结果是22;
获取两个数的最小值:Math.min(22,12)结果是12
求次幂;就是2的10次方:Math.pow(2,10);
求0-1之间的随机小数:Math.random();
Arrays
Arrays的用法:int i=[1,2,3]
int index=Arrays.binarySearch(i,2)结果index=1;
i就是数组名称,2代表下标值。
这个是查找数组中具体数值的下标;
如果元素不存在那么返回的是改元素应该所在的下标(负 的)-1减1;-1-1=-2;
数组排序:Arrays.sort(arr);就是给arr数组进行排序,顺序是由小到大
将数组转成字符进行输出,效果相当于for遍历:Arrays.toString(arr)
Arrays就是操作数字的工具(搜索和排序);如果指定的数组是值是null;就会出现空指针异常错误
大数据运算:
java中long型为最大整数类型,对于超过long型的数据如何去表示呢.在Java的世界中,超过long型的整数已经不能被称为整数了,它们被封装成BigInteger对象.在BigInteger类中,实现四则运算都是方法来实现,并不是采用运算符.
BigInteger(Integer类型的数值)和BigDecimal(Double类型的数值);
对于浮点数据的除法运算,和整数不同,可能出现无限不循环小数,因此需要对所需要的位数进行保留和选择舍入模式
BigInteger的四则运算:
BigInteger n1=new BigInteger("100000000000000");
BigInteger n2=new BigInteger("200000000000000");
1、加法:n1.add(n2) 2.减法:n2.subtract(n1);
3.乘法:n1.multiply(n2); 4.除法:n2.divide(n1)
BigDecimal的四则运算:
BigDecimal(可以解决计算失精度的问题)的四则运算: BigDecimal num1=new BigDecimal("0.09");
BigDecimal num2=new BigDecimal("0.03");
1.加法:num1.add(num2) 2.减法:num2.subtract(num1) 3.乘法:num1.multiply(num2) 4.除法:num2.divide(num1)
package com.oracle.demo02; public class Demo01 { public static void main(String[] args) { //获取觉对值 System.out.println(Math.abs(-90.3));//90.3 //向上取整,取自己本身 System.out.println(Math.ceil(12.1));// 13.0 //向下取整 ,取自己本身 System.out.println(Math.floor(12.1));//12.0 //四舍五入 System.out.println(Math.round(12.3));//12 //获取两个数的最大值 System.out.println(Math.max(12, 22));//22 //获取两个住的最小值 System.out.println(Math.min(12, 22));// 12 //求次幂 System.out.println(Math.pow(2, 10));//1024.0 //求0-1之间的随机小数 System.out.println(Math.random());// 0.3847030033920509 } }
package com.oracle.demo02; import java.util.Arrays; public class Demo02 { public static void main(String[] args) { int[] arr= {1,13,24,26,33,44,55}; //调用 binarysearch 前提:数组必修为有序数组 //如果元素在集合中不存在,那返回这个值在的位置-1 int index=Arrays.binarySearch(arr, 24); System.out.println(index);//2 //排序 int [] arr2= {1,5,6,7,5,9,4,12,33,4}; Arrays.sort(arr2); //将数组——》字符串 System.out.println(Arrays.toString(arr2)) } }
package com.oracle.demo02;
package com.oracle.demo02; import java.math.BigInteger; public class Demo03 { public static void main(String[] args) { BigInteger bi=new BigInteger("1000000000000000000000000"); BigInteger b2=new BigInteger("1000000000000000000000000"); //加法 System.out.println(bi.add(b2));//2000000000000000000000000 //减法 System.out.println(b2.subtract(bi));//数太大了 //乘法 System.out.println(bi.multiply(b2)); //除法 System.out.println(b2.divide(bi)); } }
BigDecimal
import java.math.BigDecimal; public class Demo04 { public static void main(String[] args) { //丢精度 System.out.println(0.09 + 0.01); System.out.println(1.0 - 0.32); System.out.println(1.015 * 100); System.out.println(1.301 / 100); //精确计算 BigDecimal b1=new BigDecimal("0.09"); BigDecimal b2=new BigDecimal("0.01"); System.out.println(b1.add(b2)); //加法 BigDecimal b3=new BigDecimal("1.0"); BigDecimal b4=new BigDecimal("0.32"); System.out.println(b3.subtract(b4)); //减法 BigDecimal b5=new BigDecimal("1.015"); BigDecimal b6=new BigDecimal("100"); System.out.println(b5.multiply(b6));
//除法
BigDecimal b7=new BigDecimal("1.015"); BigDecimal b8=new BigDecimal("100"); System.out.println(b7.divide(b8)); } }