zoukankan      html  css  js  c++  java
  • 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
        }
    }
    

      

     

  • 相关阅读:
    learning scala view collection
    scala
    learning scala dependency injection
    learning scala implicit class
    learning scala type alise
    learning scala PartialFunction
    learning scala Function Recursive Tail Call
    learning scala Function Composition andThen
    System.Threading.Interlocked.CompareChange使用
    System.Threading.Monitor的使用
  • 原文地址:https://www.cnblogs.com/xulinjun/p/14769837.html
Copyright © 2011-2022 走看看