Java------常用类之BigDecimal类

BigDecimal类

  • 思考:以下程序输出的结果是多少?
public class Demo03 {
    public static void main(String[] args) {
        double a = 1.0 ;
        double b = 0.9 ;
        System.out.println(a-b);
        
        //        面试题
        double result = (1.4-0.5)/0.9 ;
        System.out.println(result);
    }
}

运行结果:

0.09999999999999998
0.9999999999999999

double是近似值存储,所以存在一些精度的偏差。而在很多实际应用中需要精确的运算,这就需要BigDecimal

位置、作用、创建方式

  • 位置:java.math包中
  • 作用:精确计算浮点数
  • 创建方式
BigDecimal bd = new BigDeimal("1.0");

实例操作

public class Demo03 {
    public static void main(String[] args) {
//        这里BigDeimal一定要选择字符串
        BigDecimal bigDecimal = new BigDecimal("1.0");
        BigDecimal bigDecima2 = new BigDecimal("0.9");

//        减法
        BigDecimal r1 = bigDecimal.subtract(bigDecima2);
        System.out.println(r1);

//        加法
        System.out.println(bigDecimal.add(bigDecima2));

//        乘法
        System.out.println(bigDecimal.multiply(bigDecima2));

//        除法
        BigDecimal r2 = new BigDecimal("1.4")
                .subtract(new BigDecimal("0.5"))
                .divide(new BigDecimal("0.9"));
        System.out.println(r2);
        
        BigDecimal r3 = new BigDecimal("10")
            .divide(new BigDecimal("3"),1);
        System.out.println(r3);
    }
}

运行结果:

0.1
1.9
0.90
1
3

在使用BigDeimal时,使用除法除不尽时,会报错,这时需要指定保留的位数和取舍方式

### 回答1: doubleJava中的一个包装,用于封装基本数据型double。它提供了一些方法,可以对double型的数据进行操作和转换。例如,可以使用double的parseDouble方法将字符串转换为double型的数据,也可以使用doubleValue方法将Double对象转换为double型的数据。此外,double还提供了一些常量,如MAX_VALUE和MIN_VALUE,分别表示double型的最大值和最小值。在Java中,double型的数据通常用于表示浮点数,如小数或科学计数法表示的数值。 ### 回答2: Java的double是基本数据型中的一种,它是一个浮点数型,可以用来表示小数或者整数。在Java中,如果需要使用双精度浮点数,我们可以直接使用double型,而不需要使用其它库或者自定义数据型。 Java的double提供了很多方法来处理双精度浮点数。比如,我们可以使用doubleValue()方法将一个Double对象转换成double型的值;使用compareTo()方法比较两个double型的值的大小;使用isNaN()方法判断一个double型的值是否为非数值。 同时,Java的double还提供了一些常量,如MAX_VALUE、MIN_VALUE、POSITIVE_INFINITY、NEGATIVE_INFINITY和NaN。其中,MAX_VALUE表示double型的最大值,MIN_VALUE表示double型的最小值,POSITIVE_INFINITY表示正无穷大,NEGATIVE_INFINITY表示负无穷大,NaN表示非数值。 除了基本的方法和常量,Java的double还可以拆箱和装箱。拆箱指将Double型的值转换成double型的值,而装箱则是将double型的值封装成一个Double对象。 在实际开发中,我们常常使用double型来表示货币、收入、体重、距离等数值。使用double型可以方便地进行数值计算,并且Java的标准库中提供了许多API来对double型的值进行操作和处理,这大大提高了开发效率。使用double型时需要注意其精度问题,因为在进行除法等计算时,可能会出现精度丢失的情况。此时,我们可以使用BigDecimal来解决这个问题。 综上所述,Java的double是一个非常重要的基本数据型,我们在日常开发中经常使用,需要熟练掌握其使用方法和注意事项。 ### 回答3: 练习Java包装之Double是学习Java语言基础的必备内容,DoubleJava常用的包装之一,它用于将基本数据型double封装成一个对象。Double提供了很多有用的方法,能够方便地进行数字转换、计算和比较等操作。 Double中最常用的方法是parseDouble(),它可以将一个字符串转换为double型的数据。例如,可以使用Double.parseDouble("3.14")来获得一个double型的值3.14。同时,Double还提供了很多其他的方法,如doubleValue()方法用于将Double对象转换为double型,intValue()方法用于将Double对象转换为int型,toString()方法用于将Double对象转换为字符串型等。 此外,在使用Double时还需要注意几个重要的特性。一是Double是不可变的,即一旦创建了一个Double对象,它的值就不能再改变了。这意味着如果需要在程序中对double型的数据进行频繁的修改,就应该使用基本数据型double,而不是Double对象。 二是由于Double是对象,所以在比较两个Double对象时,应该使用equals()方法而不是==操作符。因为==操作符只比较两个对象的内存地址,而不是它们的值,而equals()方法则比较两个对象的值是否相等。 最后,需要了解的是Double中一些重要的常量。例如,Double.MAX_VALUE表示可表示的最大双精度浮点数,Double.MIN_VALUE表示可表示的最小双精度浮点数,NaN表示非数字(Not a Number),Infinity表示正无穷或负无穷。 练习Java包装之Double能够帮助我们更好地理解Java语言的基础知识和语法规则,同时提高我们对数字的处理能力和代码编写的效率。建议在学习Java语言时,重点掌握和实践常用的包装,以更好地应用Java语言进行开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值