• Java——BigInteger、BigDecimal


    一、Biginteger

    1.1、介绍

    java.math.Biginteger类不是基本数据类型之一,可以用来对一些大整数做运算。当超出基本数据类型数据范围的整数运算时就可以使用BigInteger了。

    1.2、构造方法

    BigInteger(String value)
    

    可以将整数的字符串,转换为BigInteger对象。

    1.3、常用方法

    public BigInteger add(BigInteger value)   // 超大整数加法运算
    
    public BigInteger subtract(BigInteger value)   // 超大整数减法运算
    
    public BigInteger multiply(BigInteger value)   // 超大整数乘法运算
    
    public BigInteger divide(BigInteger value)   // 超大整数除法运算,除不尽取整数部分
    

    例子

    public class BigIntegerTest {
        public static void main(String[] args) {
            BigInteger bigNum1 = new BigInteger("123456789987654321");
            BigInteger bigNum2 = new BigInteger("2");
    
            System.out.println("加法结果:" + bigNum1.add(bigNum2));   // 加法结果:123456789987654323
            System.out.println("减法结果:" + bigNum1.subtract(bigNum2));   // 减法结果:123456789987654319
            System.out.println("乘法结果:" + bigNum1.multiply(bigNum2));   // 乘法结果:246913579975308642
            System.out.println("除法结果:" + bigNum1.divide(bigNum2));   // 除法结果:61728394993827160
        }
    }
    

    二、BigDecimal

    2.1、介绍

    java.math.BigDecimal可以对大浮点数进行运算,保证运算的准确性。float、double它们在存在及运算的时候,会导致数据精度的丢失。如果要保证运算的准确性,就需要使用BigDeciaml。

    2.2、构造方法

    BigDecimal(String val)
    

    将BigDecimal的字符串表示形式转换为BigDecimal。

    2.3、常用方法

    public BigDecimal add(BigDecimal value)   // 加法运算
    
    public BigDecimal subtract(BigDecimal value)   // 减法运算
    
    public BigDecimal multiply(BigDecimal value)   // 乘法运算
    
    public BigDecimal divide(BigDecimal value)   // 除法运算(除不尽会有异常)
    
    public BigDecimal divide(BigDecimal value, int scale, RoundingMode roundingMode)   // 除法运算(除不尽,使用该方法)参数说明:scale 准确位数,roundingMode取舍模式 RoundingMode.HALF_UP 四舍五入
    

    例子

    public class BigDecimalTest {
        public static void main(String[] args) {
            BigDecimal bigDec1 = new BigDecimal("10.999999999999999");
            BigDecimal bigDec2 = new BigDecimal("0.3001");
            System.out.println("加:" + bigDec1.add(bigDec2));   // 加:11.300099999999999
            System.out.println("减:" + bigDec1.subtract(bigDec2));   // 减:10.699899999999999
            System.out.println("乘:" + bigDec1.multiply(bigDec2));   // 乘:3.3010999999999996999
            System.out.println("除:" + bigDec1.divide(bigDec2, 3, RoundingMode.HALF_UP));   // 除:36.654
        }
    }
    

      

     

  • 相关阅读:
    使用Angular CLI生成 Angular 5项目
    asp.net core 2.0 web api + Identity Server 4 + angular 5 可运行前后台源码
    依赖反转原则DIP 与使用了Repository模式的asp.net core项目结构
    Git基本命令 -- 别名 + 忽略 + 推送
    Git基本命令 -- 历史
    多线程,论多核时代爱恨情仇
    凛冬将至,用几款特效暖暖身
    HTML5游戏开发引擎,初识CreateJS
    详解设计模式之工厂模式(简单工厂+工厂方法+抽象工厂)
    详解设计模式六大原则
  • 原文地址:https://www.cnblogs.com/xulinjun/p/14769837.html
Copyright © 2020-2023  润新知