JAVA包装类、BigDecimal类、BigInteger类

一、包装类:包装类的作用是让基本类型数据以对象的形式存在和使用,使得基本类型也可以以面向对象的思想进行开发。
包装类和基本类型对应关系:
      基本类型                 包装类
          int                   java.lang.Integer
         char                 java.lang.Character
         byte                 java.lang.Byte
         short                java.lang.Short
         long                 java.lang.Long
        double              java.lang.Double
         float                  java.lang.Float
        boolean            java.lang.Boolean

包装类一些常用的变量和方法:
 常量:MAX_VALUE:最大值,int最大值+1变成int最小值
             MIN_VALUE:  最小值,int最小值-1变成int最大值
方法:int intValue();   拆箱
            Integer valueOf(int a);装箱
            parseXXX(String str),将字符串表示的基本数据类型内容转换为这个基本类型数据,转换之前一定要确保字符串是基本数据类型兼容的数据,否则会转换异常报错numberformatException。
           将一个数字变成字符串有两种方法:
                                                              4+"";
                                                              Integer.valueOf(4).toString();
Integer的两个方法:
 可以将数字以2进制字符串的形式返回      Integer.toBinaryString(int n);
 可以将数字以16进制字符串的形式返回    Integer.toHexString(int n);

public class Demo {
  private static Object[] arrays = new Object[10];
  private static int index = 0;
  public static void add(Object obj){
   if(index<arrays.length){

 arrays[index++] = obj;
   }
  }
  public static void main(String[] args){
   String name = "hello";
   add(name);
   //使用包装类,可以使用add方法了
   Integer a = new Integer(10);//从基本数据类型到引用类型的过程叫“装箱”
   add(a);
   int c = a.intValue();//从引用数据类型到基本数据类型的过程叫“拆箱”,拆箱方法为XXXValue(),xxx是引用类型所 代表的基本类型名
  //在java1.5版本以后,推出了自动拆装箱,编译器在编译期做的预处理工作。基本类型和引用类型可以直接的相互赋值

   int b= 10;
   Integer d =10;//它这里的自动装箱并不是new Integer(10),而是使用Integer.valueOf(10)这种方法装箱,这种方法效 率高点
   int f = d;
   add(b);
   System.out.println(Integer.MAX_VALUE);
   String numStr = "456";
   int i = Integer.parseInt(numStr);
   i+=1;
   String str = i+"";//string str = Integer.valueOf(i).toString();
  }
}

二、BigDeciaml类:
java在计算浮点类型时会有舍入误差,java.math.BigDecimal类可以用于计算和描述非常精确的浮点数。
构造方法:BigDecimal(String num)
支持常用的加减乘除运算。
当我们对计算有严格要求时会使用该类,不过在正常开发中double一般都能满足我们的需求。

 public class TestBigDecimal {
  public static void main(String[] args){
   BigDecimal d1 = new BigDecimal("3.0");
   BigDecimal d2 = new BigDecimal("2.9");
   BigDecimal d3 = d1.subtract(d2);//减法运算
   System.out.println(d3);//0.1
  /*
   * add
   * subtract
   * multiply
   * divide除法,要使用舍入原则,否则当遇到无线小数时,会一直除到溢出
   * BigDecimal.ROUND_HALF_UP    四舍五入
   */
   BigDecimal d4 = d1.divide(d2,10,BigDecimal.ROUND_HALF_UP);
   System.out.println(d4);//1.0344827586
  }
}

三、BigInteger类:

 java提供的整型中int long 都是有范围的。我们可以使用BigInteger 表示一个范围更大的数字,理论上该值的最大值与内存有关。它也支持加减乘除,和BigDecimal的方法一样使用。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java BigDecimal是用于处理高精度的十进制数值的。它提供了各种数学运算方法,例如加法、减法、乘法和除法,可以对BigDecimal对象进行这些运算操作。 例如,使用add()方法可以对两个BigDecimal对象进行相加操作;使用subtract()方法可以对两个BigDecimal对象进行相减操作;使用multiply()方法可以对两个BigDecimal对象进行相乘操作;使用divide()方法可以对两个BigDecimal对象进行相除操作。 此外,BigDecimal还提供了截断和四舍五入的功能。可以使用setScale()方法来设置保留的小数位数,并且可以指定采用的四舍五入模式。例如,通过设置setScale(4, RoundingMode.HALF_UP)来保留BigDecimal对象的小数位数为4,并且按照四舍五入的方式进行截断。 在使用BigDecimal时,通常会使用其构造方法来创建BigDecimal对象。其中一种常见的构造方法是将double型的数值转换为字符串,然后传递给构造方法,例如new BigDecimal("0.01")。 综上所述,Java BigDecimal可以用于进行高精度的十进制数值计算,并且可以实现截断和四舍五入的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [java中的BigDecimal型](https://blog.csdn.net/a1782519342/article/details/124727558)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值