【JavaSE_学习笔记】BigDecimal类与BigInteger类

来源:互联网 发布:淘宝上退款多久能到账 编辑:程序博客网 时间:2024/06/06 02:51

【JavaSE_学习笔记】BigDecimal类与BigInteger类

BigDecimal类

对于浮点类型的数据,他们的存储和整数的存储是不一样的,是按照有效数字位来进行存储的,浮点类型的数据计算时容易损失精度,计算出的结果不准确,为此Java提供了BigDecimal类。
BigDecimal作用:来提供浮点类型数据的精确计算!可变的、任意精度的有符号十进制数
构造方法:
  public BigDecimal(String val)
常用方法:
  public BigDecimal add(BigDecimal augend):加
  public BigDecimal subtract(BigDecimal subtrahend):减
  public BigDecimal multiply(BigDecimal multiplicand):乘
  public BigDecimal divide(BigDecimal divisor):除
  public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
    参数1:商,参数2:保留几位小数,参数3:舍入的一种模式:ROUND_HALF_UP
举例:

package demotest_BigDecimal;import java.math.BigDecimal;public class Demo1 {    public static void main(String[] args) {        //创建BigDecimal对象        BigDecimal bd1 = new BigDecimal("0.01") ;        BigDecimal bd2 = new BigDecimal("0.09") ;        System.out.println("add:"+bd1.add(bd2));//add:0.10        BigDecimal bd3 = new BigDecimal("1.0") ;        BigDecimal bd4 = new BigDecimal("0.32") ;        System.out.println("sub:"+bd3.subtract(bd4));//sub:0.68        BigDecimal bd5 = new BigDecimal("1.501") ;        BigDecimal bd6 = new BigDecimal("100.0") ;        System.out.println("mul:"+bd5.multiply(bd6));//mul:150.1000        BigDecimal bd7 = new BigDecimal("1.301") ;        BigDecimal bd8 = new BigDecimal("100") ;        System.out.println("div:"+bd7.divide(bd8));//div:0.01301        System.out.println("div:"+bd7.divide(bd8, 3, BigDecimal.ROUND_HALF_UP));//div:0.013        System.out.println("div:"+bd7.divide(bd8, 8, BigDecimal.ROUND_HALF_UP));//div:0.01301000    }}

BigInteger类

BigInteger作用:用来计算超出了Integer类型范围的数据
构造方法:
  public BigInteger(String val)将字符串表示的数字封装成BigInteger类型
常用方法:
  public BigInteger add(BigInteger val) 加
  public BigInteger subtract(BigInteger val) 减
  public BigInteger multiply(BigInteger val) 乘
  public BigInteger divide(BigInteger val) 除
  public BigInteger[] divideAndRemainder(BigInteger val)
    返回一个BigInteger数组,数组中的元素:商,余数
举例:

public class BigIntegerDemo2 {    public static void main(String[] args) {        //创建BigInteger对象        BigInteger bg1 = new BigInteger("100") ;        BigInteger bg2 = new BigInteger("50") ;        System.out.println("add:"+bg1.add(bg2));        System.out.println("sub:"+bg1.subtract(bg2));        System.out.println("mul:"+bg1.multiply(bg2));        System.out.println("div:"+bg1.divide(bg2));        BigInteger[] datas = bg1.divideAndRemainder(bg2) ;        System.out.println("datas[0]:"+datas[0]);//2        System.out.println("datas[1]:"+datas[1]);//0    }}
原创粉丝点击