zoukankan      html  css  js  c++  java
  • 常用api --- BigDecimal 包装类 Integer Arrays

    2.6 BigDecimal (应用)

    • 作用

      可以用来进行精确计算

    • 构造方法

      方法名说明
      BigDecimal(double val) 参数为double
      BigDecimal(String val) 参数为String
    • import java.math.BigDecimal;
      
      public class MyBigDecimalDemo2 {
          public static void main(String[] args) {
              BigDecimal bd1 = new BigDecimal(10.0);
              BigDecimal bd2 = new BigDecimal("0.3");
      
              System.out.println(bd1);
              System.out.println(bd2);
          }
      }
      构造演示
    • 常用方法

      方法名说明
      public BigDecimal add(另一个BigDecimal对象) 加法
      public BigDecimal subtract (另一个BigDecimal对象) 减法
      public BigDecimal multiply (另一个BigDecimal对象) 乘法
      public BigDecimal divide (另一个BigDecimal对象) 除法
      public BigDecimal divide (另一个BigDecimal对象,精确几位,舍入模式) 除法
    • import java.math.BigDecimal;
      
      public class MyBigDecimalDemo3 {
          //如果想要进行精确运算,那么请使用字符串的构造
          public static void main(String[] args) {
      //        BigDecimal bd1 = new BigDecimal(0.1);
      //        BigDecimal bd2 = new BigDecimal(0.2);
              BigDecimal bd1 = new BigDecimal("0.1");
              BigDecimal bd2 = new BigDecimal("0.2");
      //        public BigDecimal add(另一个BigDecimal对象)     加法
              BigDecimal add = bd1.add(bd2);
              System.out.println("和为" + add);
              //System.out.println(0.1 + 0.2);
      
      
      
      //        public BigDecimal subtract (另一个BigDecimal对象)  减法
              BigDecimal subtract = bd1.subtract(bd2);
              System.out.println("差为" + subtract);
      
      //        public BigDecimal multiply (另一个BigDecimal对象)  乘法
              BigDecimal multiply = bd1.multiply(bd2);
              System.out.println("积为" + multiply);
      //        public BigDecimal divide (另一个BigDecimal对象)    除法
              BigDecimal divide = bd1.divide(bd2);
              System.out.println("商为"+divide);
      
          }
      }
      方法演示
    • 总结

      1. BigDecimal是用来进行精确计算的

      2. 创建BigDecimal的对象,构造方法使用参数类型为字符串的。

      3. 四则运算中的除法,如果除不尽请使用divide的三个参数的方法。

      代码示例:

      BigDecimal divide = bd1.divide(参与运算的对象,小数点后精确到多少位,舍入模式);
      参数1 ,表示参与运算的BigDecimal 对象。
      参数2 ,表示小数点后面精确到多少位
      参数3 ,舍入模式  
       BigDecimal.ROUND_UP  进一法
       BigDecimal.ROUND_FLOOR 去尾法
       BigDecimal.ROUND_HALF_UP 四舍五入
    import java.math.BigDecimal;
    
    public class MyBigDecimalDemo4 {
        public static void main(String[] args) {
            BigDecimal bd1 = new BigDecimal("0.3");
            BigDecimal bd2 = new BigDecimal("4"); //0.075
    
           /* BigDecimal divide = bd1.divide(bd2);
            System.out.println(divide);*/
    
           //参数一:表示参数运算的另一个对象
           //参数二:表示小数点后精确到多少位
           //参数三:舍入模式
                    //进一法  BigDecimal.ROUND_UP
                    //去尾法  BigDecimal.ROUND_FLOOR
                    //四舍五入 BigDecimal.ROUND_HALF_UP
            BigDecimal divide = bd1.divide(bd2, 2, BigDecimal.ROUND_HALF_UP);
            System.out.println(divide);
        }
    }
    精确计算

    3.包装类

    3.1 基本类型包装类(记忆)

    • 基本类型包装类的作用

      将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据

      常用的操作之一:用于基本数据类型与字符串之间的转换

    • 基本类型对应的包装类

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

    3.2 Integer类(应用)

    • Integer类概述

      包装一个对象中的原始类型 int 的值

    public class MyIntegerDemo1 {
        public static void main(String[] args) {
            //需求:我要判断一个整数是否在 int 范围内?
            //Integer
            System.out.println(Integer.MAX_VALUE);
            System.out.println(Integer.MIN_VALUE);
        }
    }
    • Integer类构造方法

      方法名说明
      public Integer(int value) 根据 int 值创建 Integer 对象(过时)
      public Integer(String s) 根据 String 值创建 Integer 对象(过时)
      public static Integer valueOf(int i) 返回表示指定的 int 值的 Integer 实例
      public static Integer valueOf(String s) 返回一个保存指定值的 Integer 对象 String
    • 示例代码

      public class IntegerDemo {
         public static void main(String[] args) {
             //public Integer(int value):根据 int 值创建 Integer 对象(过时)
             Integer i1 = new Integer(100);
             System.out.println(i1);

             //public Integer(String s):根据 String 值创建 Integer 对象(过时)
             Integer i2 = new Integer("100");
      //       Integer i2 = new Integer("abc"); //NumberFormatException
             System.out.println(i2);
             System.out.println("--------");

             //public static Integer valueOf(int i):返回表示指定的 int 值的 Integer 实例
             Integer i3 = Integer.valueOf(100);
             System.out.println(i3);

             //public static Integer valueOf(String s):返回一个保存指定值的Integer对象 String
             Integer i4 = Integer.valueOf("100");
             System.out.println(i4);
        }
      }

    3.3 自动拆箱和自动装箱(理解)

    • 自动装箱

      把基本数据类型转换为对应的包装类类型

    • 自动拆箱

      把包装类类型转换为对应的基本数据类型

    • 示例代码

      Integer i = 100;  // 自动装箱
      i += 200;         // i = i + 200; i + 200 自动拆箱;i = i + 200; 是自动装箱

    3.4 int和String类型的相互转换(记忆)

    • int转换为String

      • 转换方式

        • 方式一:直接在数字后加一个空字符串

        • 方式二:通过String类静态方法valueOf()

      • 示例代码

        public class IntegerDemo {
           public static void main(String[] args) {
               //int --- String
               int number = 100;
               //方式1
               String s1 = number + "";
               System.out.println(s1);
               //方式2
               //public static String valueOf(int i)
               String s2 = String.valueOf(number);
               System.out.println(s2);
               System.out.println("--------");
          }
        }
    • String转换为int

      • 转换方式

        • 方式一:先将字符串数字转成Integer,再调用valueOf()方法

        • 方式二:通过Integer静态方法parseInt()进行转换

      • 示例代码

        public class IntegerDemo {
           public static void main(String[] args) {
               //String --- int
               String s = "100";
               //方式1:String --- Integer --- int
               Integer i = Integer.valueOf(s);
               //public int intValue()
               int x = i.intValue();
               System.out.println(x);
               //方式2
               //public static int parseInt(String s)
               int y = Integer.parseInt(s);
               System.out.println(y);
          }
        }

    3.5 字符串数据排序案例(应用)

    • 案例需求

      有一个字符串:“91 27 46 38 50”,请写程序实现最终输出结果是:27 38 46 50 91

    • 代码实现

      public class IntegerTest {
         public static void main(String[] args) {
             //定义一个字符串
             String s = "91 27 46 38 50";

             //把字符串中的数字数据存储到一个int类型的数组中
             String[] strArray = s.split(" ");
      //       for(int i=0; i<strArray.length; i++) {
      //           System.out.println(strArray[i]);
      //       }

             //定义一个int数组,把 String[] 数组中的每一个元素存储到 int 数组中
             int[] arr = new int[strArray.length];
             for(int i=0; i<arr.length; i++) {
                 arr[i] = Integer.parseInt(strArray[i]);
            }

             //对 int 数组进行排序
             Arrays.sort(arr);

          for(int i=0; i<arr.length; i++){
              System.out.print(arr[i] + " ");
          }
      }

     

    5.4 Arrays (应用)

    • Arrays的常用方法

      方法名说明
      public static String toString(int[] a) 返回指定数组的内容的字符串表示形式
      public static void sort(int[] a) 按照数字顺序排列指定的数组 快排
      public static int binarySearch(int[] a, int key) 利用二分查找返回指定元素的索引
    • 示例代码

      public class MyArraysDemo {
           public static void main(String[] args) {
       //       public static String toString(int[] a)   返回指定数组的内容的字符串表示形式
       //       int [] arr = {3,2,4,6,7};
       //       System.out.println(Arrays.toString(arr));

       //       public static void sort(int[] a) 按照数字顺序排列指定的数组
       //       int [] arr = {3,2,4,6,7};
       //       Arrays.sort(arr);
       //       System.out.println(Arrays.toString(arr));

       //       public static int binarySearch(int[] a, int key) 利用二分查找返回指定元素的索引
               int [] arr = {1,2,3,4,5,6,7,8,9,10};
               int index = Arrays.binarySearch(arr, 0);
               System.out.println(index);
               //1,数组必须有序
               //2.如果要查找的元素存在,那么返回的是这个元素实际的索引
               //3.如果要查找的元素不存在,那么返回的是 (-插入点-1)
                   //插入点:如果这个元素在数组中,他应该在哪个索引上.
          }
      }
  • 相关阅读:
    面向对象之补充
    继续面向对象之成员与组合
    面向对象初阶
    模块和包
    异常处理
    [Array]448. Find All Numbers Disappeared in an Array
    [Array]485. Max Consecutive Ones
    [Array] 561. Array Partition I
    [Array] 566. Reshape the Matrix
    opencv3.1线性可分svm例子及函数分析
  • 原文地址:https://www.cnblogs.com/linux985/p/15045120.html
Copyright © 2011-2022 走看看