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));
    
    		
    		
    		
    		
    		
    		
    		
    		
    	}
    
    }
    




  • 相关阅读:
    jenkins 添加用户管理权限
    jenkins+svn 自动化上线
    harbor私有仓库安装
    zabbix 监控 tcp 连接数
    zabbix 监控https URL
    chattr +i 用户也没法随意删除
    MySQL 8.0权限认证(下)
    MySQL 8.0权限认证(上)
    MySQL 8.0二进制包安装
    RPM命令总结
  • 原文地址:https://www.cnblogs.com/jatpeo/p/11767595.html
Copyright © 2011-2022 走看看