• BigDecimal大数据类。


    目标: BigDecimal大数据类。

      引入:

        浮点型运算的时候直接+ * / 可能会出现数据失真(精度问题)。

        BigDecimal可以解决浮点型运算数据失真的问题。

      BigDicimal类:

        包: java.math.

        创建对象的方式(最好的方式:)

          public static BigDecimal valueOf (double var); 包装浮点数成为大数据对象。

        方法声明:

          public BigDecimal add(BigDecimal value)       加法运算

          public BigDecimal subtract(BigDecimal value)  减法运算

          public BigDecimal multiply(BigDecimal value)   乘法运算

          public BigDecimal divide(BigDecimal value)    除法运算

          public double doubleValue()   把BigDecimal类型转换成double类型

     

    案例: 

    package com.ithei.BigDecimal;
    
    import java.math.BigDecimal;
    
    /**
     * @program: javaDemo01->BigDecimalTest
     * @description: 测试BigDecimal
     * @author: 安生
     * @create: 2021-01-24 00:00
     **/
    public class BigDecimalTest {
        public static void main(String[] args) {
    
            System.out.println(0.1+0.2); //发现出现失真了  0.30000000000000004
            //这里使用 BigDecimal 里的东西
            // 最好的使用方法 BigDecimal.valueOf(double var);
            double a = 0.1;
            double b = 0.2;
            BigDecimal a1 = BigDecimal.valueOf(a);
            BigDecimal b1 = BigDecimal.valueOf(b);
    
            //public BigDecimal add(BigDecimal value)       加法运算
            BigDecimal c = a1.add(b1);
            System.out.println("加法:"+c); //这里应该是输出对象的 但是结果如果不是 那说明了重写了toString方法
    
            //public BigDecimal subtract(BigDecimal value)  减法运算
            BigDecimal c1 = b1.subtract(a1);
            System.out.println("减法:"+c1);
    
            //public BigDecimal multiply(BigDecimal value)   乘法运算
            BigDecimal c2 = a1.multiply(b1);
            System.out.println("乘法:"+c2);
    
            //public BigDecimal divide(BigDecimal value)    除法运算
            BigDecimal c3 = b1.divide(a1);
            System.out.println("除法:"+c3);
    
    
        }
    }

     

    所以这里要补充一下  最后不是这样就完了  因为BigDecimal只是我们解决精度问题的手段,double数据才是我们的目的!!!

    最后的结果要再进行 以下的操作:  把BigDecimal类型通过.doubleValue()转换成double类型 这样才是最终操作!!!

     

    运行结果:

     

  • 相关阅读:
    MIUI(Android)使用Webview上传文件
    使用EntityFramework中DbSet.Set(Type entityType)方法碰到的问题
    Web文件管理:elFinder.Net(支持FTP)
    ASP.NET 根据现有动态页面生成静态Html
    LaTeX学习
    Java Integer剖析
    20140711 loop
    20140711 eat
    20140711 set
    20140710 loop
  • 原文地址:https://www.cnblogs.com/bichen-01/p/14319629.html
Copyright © 2020-2023  润新知