zoukankan      html  css  js  c++  java
  • java.math.BigDecimal

    package day14;
    
    import java.math.BigDecimal;
    
    /**
     * Created by admin on 2018/11/24.
      * 看程序写结果:结果和我们想的有一点点不一样,这是因为float类型的数据存储和整数不一样导致的。它们大部分的时候,都是带有有效数字位。
     *
     * 由于在运算的时候,float类型和double很容易丢失精度,演示案例。所以,为了能精确的表示、计算浮点数,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):商,几位小数,如何舍取
    
     */
    public class BigDecimalDemo {
        public static void main(String[] args) {
    //        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);
    //
    //        System.out.println(1.0 - 0.12);
            BigDecimal bd1 = new BigDecimal("0.09");
            BigDecimal bd2 = new BigDecimal("0.01");
            System.out.println(bd1.add(bd2));
            System.out.println("-------------------");
    
            BigDecimal bd3 = new BigDecimal("1.0");
            BigDecimal bd4 = new BigDecimal("0.32");
            System.out.println("subtract:" + bd3.subtract(bd4));
            System.out.println("-------------------");
    
            BigDecimal bd5 = new BigDecimal("1.015");
            BigDecimal bd6 = new BigDecimal("100");
            System.out.println("multiply:" + bd5.multiply(bd6));
            System.out.println("-------------------");
    
            BigDecimal bd7 = new BigDecimal("1.301");
            BigDecimal bd8 = new BigDecimal("100");
            System.out.println("divide:" + bd7.divide(bd8));
            System.out.println("divide:"
                    + bd7.divide(bd8, 3, BigDecimal.ROUND_HALF_UP));
            System.out.println("divide:"
                    + bd7.divide(bd8, 8, BigDecimal.ROUND_HALF_UP));
    
        }
    }
  • 相关阅读:
    linux rename命令批量修改文件名
    深度学习在推断阶段(inference)的硬件实现方法概述
    pkg-config原理及用法
    可测性分析
    CMD常用命令
    CMD命令:不是内部或者外部命令也不是可运行的程序或批处理文件
    main函数的参数argc和argv
    Eclipse中的特殊注释:TODO、XXX、FIXME
    whl文件(python)安装方法
    linux软链接和硬链接
  • 原文地址:https://www.cnblogs.com/royfans/p/10012401.html
Copyright © 2011-2022 走看看