【JavaSE笔记】Java常用类及其方法(六)_BigDecimal

来源:互联网 发布:中国电视台 知乎 编辑:程序博客网 时间:2024/05/01 18:54
本期知识点:
BigDecimal类的常用方法

类BigDecimal

不可变的、任意精度的有符号十进制数。BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。


运算的时候,float类型和double类型(浮点类型),会丢失数据,不精确,大部分时候数据存储和整数类型存储不一致,属于有效位数字不精确
java提供了一个类:BigDecimal
作用:不可变的、任意精度的有符号十进制数,让运算更精确!


1. BigDeciaml构造方法

public BigDecimal(String val)


2. BigDecimal常用的方法

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)
divisor:商
scale:有几位小数
roundingMode:以什么样的模式舍入,其标度为指定标度。


public class BigDecimal的构造方法 {public static void main(String[] args) {BigDecimal a = new BigDecimal("0.09");BigDecimal b = new BigDecimal("0.01");System.out.println("a+b="+a.add(b));System.out.println("——————————");BigDecimal c = new BigDecimal("1.0");BigDecimal d = new BigDecimal("0.32");System.out.println("a-b="+c.subtract(d));System.out.println("——————————");BigDecimal e = new BigDecimal("1.015");BigDecimal f = new BigDecimal("100");System.out.println("e*f="+e.multiply(f));System.out.println("——————————");BigDecimal g = new BigDecimal("1.301");BigDecimal h = new BigDecimal("100");System.out.println("g/h="+g.divide(f));System.out.println("——————————");System.out.println("g/h 保留3位小数 以过半模式舍入"+g.divide(f, 3 , BigDecimal.ROUND_HALF_UP));System.out.println("g/h 保留4位小数 以过半模式舍入"+g.divide(f, 4 , BigDecimal.ROUND_HALF_UP));}}




阅读全文
0 0