• System Math BigInteger与BigDecimal


    System代表系统类与本机的系统打交道的类

    由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实 例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便 的进行调用。

    成员变量

    • 成员变量
       System类内部包含in、out和err三个成员变量,分别代表标准输入流

      (键盘输入),标准输出流(显示器)和标准错误输出流(显示器)。

    •  void gc(): 该方法的作用是请求系统进行垃圾回收。至于系统是否立刻回收,则 取决于系统中垃圾回收算法的实现以及系统执行时的情况。
       String getProperty(String key): 该方法的作用是获得系统中属性名为key的属性对应的值。系统中常见 的属性名以及属性的作用如下表所示:

       
      String javaVersion = System.getProperty("java.version"); 
      System.out.println("java的version:" + javaVersion);
      String javaHome
      = System.getProperty("java.home");
      System.out.println("java的home:" + javaHome);
      String osName
      = System.getProperty("os.name");
      System.out.println("os的name:" + osName);
      String osVersion
      = System.getProperty("os.version");
      System.out.println("os的version:" + osVersion);
      String userName
      = System.getProperty("user.name");
      System.out.println("user的name:" + userName);
      String userHome
      = System.getProperty("user.home");
      System.out.println("user的home:" + userHome);
      String userDir
      = System.getProperty("user.dir");
      System.out.println("user的dir:" + userDir);

      Math模块

      java.lang.Math提供了一系列静态方法用于科学计算。其方法的参数和返回

      值类型一般为double型。

      abs 绝对值 acos,asin,atan,cos,sin,tan 三角函数
      sqrt 平方根
      pow(double a,doble b)
      log 自然对数
      exp e为底指数
      max(double a,double b)
      min(double a,double b)
      random() 返回0.0到1.0的随机数
      long round(double a) double型数据a转换为long型(四舍五入) toDegrees(double angrad) 弧度—>角度
      toRadians(double angdeg) 角度—>弧度
              int numOne= 13;
              int numTwo = 16;
      
              //abs返回绝对值
              int absNum = Math.abs(numOne);
              System.out.println(absNum);  // 13
      
              double sqrtNum = Math.sqrt(13);
              System.out.println(sqrtNum);  // 3.6

      BigInteger类

      Integer类作为int的包装类,能存储的最大整型值为231-1,Long类也是有限的, 最大为263-1。如果要表示再大的整数,

      不管是基本数据类型还是他们的包装类 都无能为力,更不用说进行运算了。

       java.math包的BigInteger可以表示不可变的任意精度的整数。BigInteger 提供 所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。

      另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、 位操作以及一些其他操作。

      也就是 数值比较大的时候用BigInteger

      构造器
       BigInteger(String val):根据字符串构建BigInteger对象

       
      常用方法:
      常用方法
       public BigInteger abs():返回此 BigInteger 的绝对值的 BigInteger。
       BigInteger add(BigInteger val) :返回其值为 (this + val) 的 BigInteger
       BigInteger subtract(BigInteger val) :返回其值为 (this - val) 的 BigInteger
       BigInteger multiply(BigInteger val) :返回其值为 (this * val) 的 BigInteger
       BigInteger divide(BigInteger val) :返回其值为 (this / val) 的 BigInteger。整数
      相除只保留整数部分。
       BigInteger remainder(BigInteger val) :返回其值为 (this % val) 的 BigInteger。
       BigInteger[] divideAndRemainder(BigInteger val):返回包含 (this / val) 后跟
      (this % val) 的两个 BigInteger 的数组。
       BigInteger pow(int exponent) :返回其值为 (thisexponent) 的 BigInteger。

      BigDecimal类

      一般的Float类和Double类可以用来做科学计算或工程计算,但在商业计算中, 要求数字精度比较高,故用到java.math.BigDecimal类。

       BigDecimal类支持不可变的、任意精度的有符号十进制定点数。

      和BigInteger 一样都是之前的数值不够了 那它来代替  这个指之前的浮点数不够用时 使用BigDecimal

       构造器  publicpublic
       常用方法  publicpublicpublicpublic
      BigDecimal(double val) BigDecimal(String val)
      BigDecimal add(BigDecimal augend)
      BigDecimal subtract(BigDecimal subtrahend)
      BigDecimal multiply(BigDecimal multiplicand)
      BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
      public void testBigInteger() {
      BigInteger bi = new BigInteger("12433241123");
      BigDecimal bd = new BigDecimal("12435.351");
      BigDecimal bd2 = new BigDecimal("11");
      System.out.println(bi);
      // System.out.println(bd.divide(bd2)); System.out.println(bd.divide(bd2, BigDecimal.ROUND_HALF_UP)); System.out.println(bd.divide(bd2, 15, BigDecimal.ROUND_HALF_UP));
      }
  • 相关阅读:
    matlab实现插值法sin函数
    matlab实现共轭梯度法、多元牛顿法、broyden方法
    matlab实现雅可比、高斯塞德尔、后项误差计算
    matlab实现高斯消去法、LU分解
    matlab实现不动点迭代、牛顿法、割线法
    matlab实现的嵌套乘法、高精度、二分法
    knn手写识别
    python笔记
    动态语言
    Spyder 快捷键
  • 原文地址:https://www.cnblogs.com/zhaoyunlong/p/12163980.html
Copyright © 2020-2023  润新知