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()运算

  • 相关阅读:
    DUBBO+Zookeeper在Centos7中本地搭建及小案例
    【后台测试】手把手教你jmeter压测
    Netdata 是一款 Linux 性能实时监测工具
    Spring Boot(5) 集成Hibernate 日志配置
    FSTConfiguration 高性能序列化框架FST
    java BeanUtils.copyProperties
    Transformer-view java实体 转换视图 Lists.transform
    shell 命令学习
    Immutable集合
    Lists.transform的使用
  • 原文地址:https://www.cnblogs.com/mlf19920916/p/12104787.html
Copyright © 2011-2022 走看看