栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

BigDecimal类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

BigDecimal类

BigDecimal类
  • 很多实际应用中需要精确运算,而double是近似值存储,不符合要求,这时需要使用BigDecimal
  • 位置:java.math包中
  • 作用:精确计算浮点数
  • 创建方式:BigDecimal bd=new BigDecimal(“1.0”)
  • 方法:
  • BigDecimal add(BigDecimal bd) //加
  • subtract() //减
  • multiply() //乘
  • divide() //除
在除法中

参数scal: 精确到小数点后几位
参数mode:指定小数部分的取舍模式,通常采用四舍五入,取值为BigDecimal.ROUND_HALF_UP

代码示例如下
package com.usuallyclass.bigdecimal;

import java.math.BigDecimal;

public class Demo01 {
    public static void main(String[] args) {
        double d1=1.0;
        double d2=0.9;
        System.out.println(d1-d2);//不是0.1

        //面试题
        double result=(1.4-0.5)/0.9;
        System.out.println(result);//不是1 原因:double存储的是近似的值,如1.0可能存的是0.999,经过各种运算,就会有误差
        //BigDecimal:浮点数精确计算
        BigDecimal bd1 = new BigDecimal("1.0");//应当存入字符串这样才无误差,如存入浮点数依然可能会有误差
        BigDecimal bd2 = new BigDecimal("0.9");
        //减法
        BigDecimal r1 =bd1.subtract(bd2);
        System.out.println(r1);
        //加法
        BigDecimal r2 =bd1.add(bd2);
        System.out.println(r2);
        //乘法
        BigDecimal r3 =bd1.multiply(bd2);
        System.out.println(r3);
        //除法
        BigDecimal r4=new BigDecimal("1.4")
                .subtract(new BigDecimal("0.5"))
                .divide(new BigDecimal("0.9"));
        System.out.println(r4);

        BigDecimal r5 =new BigDecimal("10").divide(new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);//会报错,当无法整除的时候
        //scale:保留几位小数   再后面选BigDecimal.ROUND_HALF_UP
        System.out.println(r5);//

    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/884477.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号