zoukankan      html  css  js  c++  java
  • 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类型 这样才是最终操作!!!

     

    运行结果:

     

  • 相关阅读:
    Picasa生成图片幻灯片页面图文教程
    Ubuntu下缓冲器溢出攻击实验(可以看看问题分析)
    redis源码笔记 aof
    redis源码笔记 bio
    redis源码笔记 slowlog
    记录一个字符数组和字符指针的不同
    redis源码笔记 rediscli.c
    redis源码笔记 redis对过期值的处理(in redis.c)
    redis源码笔记 有关LRU cache相关的代码
    redis源码笔记 initServer
  • 原文地址:https://www.cnblogs.com/bichen-01/p/14319629.html
Copyright © 2011-2022 走看看