BigInteger类,BigeDecimal类,Arrays类,包装类

一.BigInteger类

概念

操作整数
       我们都知道4类8种中整数最大的类型是:long
       我们以后遇到的数字,有可能会超过long的取值范围,long就接收不了这么大的数。那么这个类就起到了作用。太大的数,在java中,就不能称之为数,叫对象。

BigInteger类:

构造

       BigInteger(String val):将十进制的字符串形式,变成BigInteger对象(字符串要符合数字规则 “123456789”)。

方法

  • BigInteger add(BigInteger val) —>和另外一个BigInteger 做加法
  • BigInteger subtract(BigInteger val) —>和另外一个BigInteger 做减法
  • BigInteger multiply(BigInteger val) —>和另外一个BigInteger 做乘法
  • BigInteger divide(BigInteger val) —>和另外一个BigInteger 做除法

二.BigDecimal类

概念

操作小数。

BigDecimal类:

构造:

       BigDecimal(String val):将十进制的字符串形式,变成BigInteger对象(字符串要符合小数的规则 “10.24”)。

方法:

  • BigDecimal add(BigDecimal val) —>和另外一个BigDecimal 做加法
  • BigDecimal subtract(BigDecimal val) —>和另外一个BigDecimal做减法
  • BigDecimal multiply(BigDecimal val) —>和另外一个BigDecimal做乘法
  • BigDecimal divide(BigDecimal val) —>和另外一个BigDecimal做除法

注意:

       BigDecimal如果除不尽会报错! 还有可能出现精度损失!!!

解决:

       BigDecimal divide(BigDecimal divisor,int scale,int roundingMode);

参数

  • divisor:BigDicimal对象
  • scale:保留小数的位数
  • roundingMode:保留小数的方式

保留小数的方式 :BigDecimal 类提供了静态的成员变量来控制舍入方式:
       static int ROUND_UP:向前进1
       static int ROUND_DOWN:直接舍去
       static int POUND_HALF_UP:四舍五入

来个小案例

有以下double数组: double[] arr = {0.1,0.2,2.1,3.2,5.56,7.21};
请编程计算它们的总值及平均值(四舍五入保留小数点后2位)?

public static void main(String[] args) {
        double[] arr = {0.1,0.2,2.1,3.2,5.56,7.21};

        //创建BigDecimal对象用来存总和
        BigDecimal num = new BigDecimal(0);

        //遍历数组
        for (double a:arr
             ) {
            //创建BigDecimal,将数组中每一个值添加进去用于计算和
            BigDecimal bd = new BigDecimal(a);

            //累加到num
            num = num.add(bd);
        }

        //和 除 数组长度
        BigDecimal divide = num.divide(new BigDecimal(arr.length), 2, BigDecimal.ROUND_HALF_UP);

        System.out.println("和:"+num);
        System.out.println("平均值:"+divide);

    }

三.Arrays类

java.util

概念

       操作数组的工具类

特点

  • 方法都是静态的,直接类名调用即可。
  • 构造方法被私有,不能new对象

方法

  • static String toString(int[] a) -->返回指定数组内容的字符串表示形式([0, 0, 0, 0, 0]);
  • static void sort(int[] a) -->排序 升序

四.包装类

基本数据类型 引用数据类型
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

拆箱和装箱(自动)

  • 装箱:将基本数据类型转成引用数据类型(包装类)
  • 拆箱:把引用数据类型(包装类)转成基本数据类型

下面方法吃饱了撑的了解有这个东西就行!
手动装箱(int 举例)
构造:
       Integer(int i ) -->将int型转成Integer对象
       Integer(String s ) -->将 符合数字规则的字符串 转成Integer对象。
方法:
       static valueof(int i ) 直接Integer.调用
       static valueof(String s)

手动拆箱(int 举例)
方法:
       intValue();

任何类型遇到字符串都会变成字符串

基本数据类型和字符串之间的转换

基本数据类型转String
        1. 基本数据类型和字符串拼接
        2. 通过String类中的静态方法
              static String valueOf(int i);

将String转成基本数据类型
       1.static double parseDouble(String s)
       2.static boolean parseBoolean(String s)其他以此类推…


发布了30 篇原创文章 · 获赞 39 · 访问量 2060

猜你喜欢

转载自blog.csdn.net/weixin_44564242/article/details/104833903