zoukankan      html  css  js  c++  java
  • BigDecimal方法的应用

    一.简介

    BigDecimal 在 MySQL中为 decimal ,这个也是可以存储小数点的数值,相比较于 double来说,decimal的精度更加的准确,如果用这些小数点的小伙伴们,一定要记住 decimal(10,2) 这也就是保留两位小数,如果不写保留几位的话,存入之后都会被抛弃

    二.加减乘除

    加法:add

    减法:subtract

    乘法:multiply

    除法:divide

    //加法 
    
    bignum3 =  bignum1.add(bignum2);      
    
    System.out.println("求和:" + bignum3); 
    //减法 
    
    bignum3 = bignum1.subtract(bignum2); 
    
    System.out.println("求差:" + bignum3); 
    //乘法 
    
    bignum3 = bignum1.multiply(bignum2); 
    
    System.out.println("乘法积:" + bignum3); 
    //除法 
    
    bignum3 = bignum1.divide(bignum2); 
    
    System.out.println("除法结果:" + bignum3); 

     

    三.除以后保留两位小数

    本来是准备在除法以后增加.setSacle()的,后来发现如果出来乘除之后无限循环,那么会报错

    BigDecimal big = new BigDecimal(4);
    big=big.divide(new BigDecimal(3),2,BigDecimal.ROUND_HALF_UP);//会在除完直接保留两位

     

    四.直接保留两位小数(四舍五入)

    BigDecimal big = new BigDecimal(4);
    big.setScale(2, RoundingMode.HALF_UP);

    1.setScale简单用法

    BigDecimal.setScale();//用于格式化小数点 
    setScale(1);//表示保留一位小数,默认用四舍五入方式 
    setScale(1,BigDecimal.ROUND_DOWN);//直接删除多余的小数位,如2.35会变成2.3 
    setScale(1,BigDecimal.ROUND_UP);//进位处理,2.33变成2.4 
    setScale(1,BigDecimal.ROUND_HALF_UP);//四舍五入,2.35变成2.4
    setScaler(1,BigDecimal.ROUND_HALF_DOWN);//四舍五入,如果5以下则舍弃,2.34 变成 2.3,如果5以上包括5就会 2.35 变成 2.4

     

    五.BigDecimal的比较

    1.BigDecimal的非0判断

    BigDecimal big = new BigDecimal(0);
    big.compareTo(BigDecimal.ZERO)==0,返回true则等于0,返回false,则不等于0

    2.BigDecimal之间的比较

    BigDescimal bd1 = new BigDescimal();
    BigDescimal bd2 = new BigDescimal();
    
    Integer a = bd1.compareTo(bd2);
    
    a = -1,表示bd1小于bd2;
    
    a = 0,表示bd1等于bd2;
    
    a = 1,表示bd1大于bd2;

     

    六. BigDecimal在数据库中的存储

    decimal 这个字段  如果不跟任何的限制,那么默认 decimal(10) 也就是十位数,还是整数
    
    如果是 decimal(10,5)  意思是 十位数其中有五位是小数点,也就是 50000.00000,
    如果出现前五位超出范围了,比如 500000,那么就会爆出DataIntegrityViolationException,超出范围
    
    decimal(设置多长,设置后面跟多少位小数,如果不够零补全);
  • 相关阅读:
    凸包Graham Scan算法实现
    人与人之间的差距是从大学开始的
    google笔试题两个n维数组logn求中位数问题 zz
    matlab中使用结构体
    人脸识别理论与应用研究 zz
    如果让我再读一次研究生 zz
    Open Yale CourseFinancial MarketNote1 zz
    哈尔小波变换示例
    全屏模式 硬缩放
    APE结合键盘控制角色运动 转
  • 原文地址:https://www.cnblogs.com/honour1207/p/14622315.html
Copyright © 2011-2022 走看看