解决精度丢失,double和float比较(一个数是Float和一个数是Double的比较)

问题:不论float转double,还是double转float,都会有精度丢失的问题。

解决思路:

先将float和double数据类型转成string类型,再转成BigDecimal类型进行值大小比较,完美解决!


    public static void main(String[] args) {
        Float f=135.005f;
        Double d=135.005d;
        BigDecimal ff = new BigDecimal(Float.toString(f));
        BigDecimal dd = new BigDecimal(Double.toString(d));
        System.out.println(ff);
        System.out.println(dd);
        BigDecimal bigyue = new BigDecimal(0.1);
        if (ff.compareTo(dd) ==1){//返回值如果是1,则ff大,0则相等,-1则ff小于dd
            System.out.println("超过统计值");
        }else {
            System.out.println("可以占用");
        }
    }
发布了109 篇原创文章 · 获赞 2 · 访问量 5694

猜你喜欢

转载自blog.csdn.net/Seven71111/article/details/103808426