开发者社区> 唐家四少官微> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Java BigDecimal类

简介: Java BigDecimal类学习
+关注继续查看

BigDecimal可以表示一个任意大小且精度完全准确的浮点数。

看了源码,BigDecimal主要是以一个BigInteger和int成员变量组成的

image.pngintVal表示数字部分,scale表示小数的位数。

BigDecimal d1 = new BigDecimal("123.45");
BigDecimal d2 = new BigDecimal("123.4500");
BigDecimal d3 = new BigDecimal("1234500");
/* 输出小数位数 */
System.out.println(d1.scale()); // 2
System.out.println(d2.scale()); // 4
System.out.println(d3.scale()); // 0

格式化BigDecimal

使用 stripTrailingZeros() 方法可以将一个BigDecimal格式化为一个相等的,但去掉了末尾0的BigDecimal:

public class Test {
    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("123.456");
        BigDecimal bd2 = new BigDecimal("123.4560");
        System.out.println(bd1);
        System.out.println(bd2);

        System.out.println(bd2.stripTrailingZeros());
    }
}

image.png

比较BigDecimal

BigDecimal类提供两个比较方法,分别是 equal 和 compareTo ,两者区别在于前者除了数字部分一样,还需要小数位数一样,而后者是根据实际的值作比较。

因此必须使用 compareTo() 方法来比较,它根据两个值的大小分别返回负数、正数和0,分别表示小于、大于和等于。

public class Test {
    public static void main(String[] args) {
        BigDecimal bd1 = new BigDecimal("123.456");
        BigDecimal bd2 = new BigDecimal("123.4560");
        System.out.println(bd1.equals(bd2));
        System.out.println(bd1.compareTo(bd2));
    }
}

image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java实现希尔排序
华杰让我看了一道面试题:现有一段程序S,可以对任意n个数进行排序。如果现在需要对n^2个数进行排序,最少需要调用S多少次?(只允许调用S,不可以做别的操作)。         看到了这个,我想试试希尔排序,就学学。
731 0
Java使用jxl.jar包写Excel文件的最适合列宽问题基本实现
以前用jxl.jar包,读写过Excel文件。也没有注意最适合列宽的问题,但是jxl.jar没有提供最适合列宽的功能,上次用到写了一下,可以基本实现最适合列宽。 注意,这个只是基本可以实现,基本针对中文电子报表。
984 0
JAVA实现QRCode的二维码生成以及打印
喜欢的朋友可以关注下,粉丝也缺。 不说废话了直接上代码 注意使用QRCode是需要zxing的核心jar包,这里给大家提供下载地址 https://download.
4008 0
面试:用 Java 实现一个 Singleton 模式
面试系列更新后,终于迎来了我们的第一期,我们也将贴近《剑指 Offer》的题目给大家带来 Java 的讲解,个人还是非常推荐《剑指 Offer》作为面试必刷的书籍的,这不,再一次把这本书分享给大家,PDF 版本在公众号后台回复「剑指Offer」即可获取。
1021 0
Dockerfile配置APM监控实现Java容器的性能监控
通过Dockerfile可以用来构建容器镜像,我们一般也是通过这种方式来构建一个Tomcat应用服务容器,如果要实现对容器中的Tomcat服务(或是其他Java应用)进行APM(应用性能管理)监控,就需要我们在容器中放置javaagent并做相关配置,而在已生成的容器中修改配置不符合容器管理的规范,所以我们建议在发布镜像时就将javaagent植入,这样在生成容器时就可以通过环境变量参数来决定是否开启监控。
1366 0
Java的零基础入门:接口的实现(三)
Java的零基础入门:接口的实现(三)
0 0
java并发原理实战(9)--手动实现一个可重入锁
java并发原理实战(9)--手动实现一个可重入锁
0 0
java并发原理实战(14)--自己实现简易web服务器
java并发原理实战(14)--自己实现简易web服务器
0 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Java基础入门(四)-泛型、反射、注解
立即下载
Java开发手册1.3.0
立即下载
Java开发手册1.2.0
立即下载