zoukankan      html  css  js  c++  java
  • java基础之BigDecimal类

    由于在运算的时候,float类型和double很容易丢失精度,演示案例。所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal
    BigDecimal类概述
    不可变的、任意精度的有符号十进制数。
    构造方法

    public BigDecimal(String val)

    问题的引出:在运算的过程中,float类型和double类型容易引起精度的丢失
    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);

    public BigDecimal(double val) 查看API的解释,说其有不可预知性。而字符串参数的是结果可预知的。
    成员方法:

    public BigDecimal add(BigDecimal augend)
    public BigDecimal subtract(BigDecimal subtrahend)
    public BigDecimal multiply(BigDecimal multiplicand)
    public BigDecimal divide(BigDecimal divisor)
    BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)

    package BigDecimal;
    
    import java.math.BigDecimal;
    
    public class demo {
    	public static void main(String[] args) {
    		
    		BigDecimal bd1 = new BigDecimal("0.09");
    		BigDecimal bd2 = new BigDecimal("0.01");
    		System.out.println(bd1.add(bd2));
    
    		BigDecimal bd3 = new BigDecimal("1.0");
    		BigDecimal bd4 = new BigDecimal("0.32");
    		System.out.println(bd3.subtract(bd4));
    
    		BigDecimal bd5 = new BigDecimal("1.015");
    		BigDecimal bd6 = new BigDecimal("100");
    		System.out.println(bd5.multiply(bd6));
    
    		BigDecimal bd7 = new BigDecimal("1.301");
    		BigDecimal bd8 = new BigDecimal("100");
    		System.out.println(bd7.divide(bd8));
    		System.out.println(bd7.divide(bd8, 2,BigDecimal.ROUND_HALF_UP));
    
    		
    		
    		
    		
    		
    		
    		
    		
    	}
    
    }
    




  • 相关阅读:
    对获取的DataTable表进行过滤筛选得到DataView
    简单提取iOS13的ipsw固件的内置壁纸(或文件)
    win10设置Python程序定时运行(设置计划任务)
    后端返回一个这种类型的时间格式给前端2020-01-16T09:10:02.349Z
    js把每个词的首字母转大写
    idea连接mysql自动生成实体类
    el自定义函数
    js日期时间格式化
    js大小写转换
    js瞄点
  • 原文地址:https://www.cnblogs.com/jatpeo/p/11767596.html
Copyright © 2011-2022 走看看