zoukankan      html  css  js  c++  java
  • java之BigInteger BigDecimal

    1、BigInteger的构造方法同包装类,参数传入字符串(一般为超过Long数据的长度)

     1 / 
     2 public static void main(String[] args) {
     3         //大数据封装为BigInteger对象
     4           BigInteger big1 = new BigInteger("12345678909876543210");
     5           BigInteger big2 = new BigInteger("98765432101234567890");
     6           //add实现加法运算
     7           BigInteger bigAdd = big1.add(big2);
     8           //subtract实现减法运算
     9           BigInteger bigSub = big1.subtract(big2);
    10           //multiply实现乘法运算
    11           BigInteger bigMul = big1.multiply(big2);
    12           //divide实现除法运算
    13           BigInteger bigDiv = big2.divide(big1);
    14 }

    配合Random类,产生随机数

    1       Random r = new Random() ;
    2     BigInteger bigInteger1 = new BigInteger(2,r);
    3     // 0 到 (2^numBits - 1) 范围的随机数
    4     System.out.println(bigInteger1);

    2、BigDecimal对象进行高精度的运算(double  float)

      在程序中执行下列代码,会出现什么问题?

        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);

     doublefloat类型在运算中很容易丢失精度,造成数据的不准确性,Java提供我们BigDecimal类可以实现浮点数据的高精度运算

    通过BigDecimal创建对象,传入参数,为浮点型的字符串

     1 public static void main(String[] args) {
     2           //大数据封装为BigDecimal对象
     3           BigDecimal big1 = new BigDecimal("0.09");
     4           BigDecimal big2 = new BigDecimal("0.01");
     5           //add实现加法运算
     6           BigDecimal bigAdd = big1.add(big2);
     7           
     8           BigDecimal big3 = new BigDecimal("1.0");
     9           BigDecimal big4 = new BigDecimal("0.32");
    10           //subtract实现减法运算
    11           BigDecimal bigSub = big3.subtract(big4);
    12           
    13           BigDecimal big5 = new BigDecimal("1.105");
    14           BigDecimal big6 = new BigDecimal("100");
    15           //multiply实现乘法运算
    16           BigDecimal bigMul = big5.multiply(big6);

    然后进行add()/substract()/multiply()/divide()运算

  • 相关阅读:
    c#中的构造方法
    c# Dictionary拓展2个key得到1个value
    虚拟主机的提权两个小技巧
    teamviewer提权
    域渗透:mstsc连接记录清理
    linux之 vim 常用命令
    Linux之 find 命令学习
    域渗透:MS14-068
    学习:脱壳之Anti Dump和修复PE
    学习:KiUserExceptionDispatcher之寻找OEP
  • 原文地址:https://www.cnblogs.com/mlf19920916/p/12104787.html
Copyright © 2011-2022 走看看