我是靠谱客的博主 孤独耳机,最近开发中收集的这篇文章主要介绍BigDecimal.valueof()和new BigDecimal()的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近碰到一个bug,用金额判断大小,结果与预想不一致。

经过测试发现是new BigDecimal()的问题,这里做了个简单的测试。

@Test
    public void chaeTest() throws Exception{
        BigDecimal a = BigDecimal.valueOf(0.99);
        BigDecimal b = new BigDecimal(0.99);
        boolean c = a == b;
        boolean d = a.equals(b);
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println("-------------");
    }
0.99
0.9899999999999999911182158029987476766109466552734375
false
false

结果发现new BigDecimal()会改变数值,导致判断出现问题。用BigDecimal.valueof()则不会。

最后

以上就是孤独耳机为你收集整理的BigDecimal.valueof()和new BigDecimal()的区别的全部内容,希望文章能够帮你解决BigDecimal.valueof()和new BigDecimal()的区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(73)

评论列表共有 0 条评论

立即
投稿
返回
顶部