zoukankan      html  css  js  c++  java
  • java float直接转double会出现误差

    通过debug发现,float 直接转换double会出现误差。数据类型需要通过String转一道

     public static void main(String[] agrs){
            double a=2.8d;
            float a1=2.8f;
            double a2=a1;
            System.out.println("a1==a2:"+(a1==a2));
            System.out.println("a==a2:"+(a==a2));
            System.out.println(a1);
            System.out.println(a2);
        }

    结果

    a1==a2:true
    a==a2:false
    2.8
    2.799999952316284

    如例子所示,2.8转为double 成了2.799999952316284。,失去精度。

    public static void main(String[] agrs){
            double a=2.8d;
            float a1=2.8f;
            double a2=Double.valueOf(String.valueOf(a1));
            System.out.println("a1==a2:"+(a1==a2));//java自动将a1转为double
            System.out.println("a==a2:"+(a==a2));
            System.out.println(a1);
            System.out.println(a2);
        }

    结果

    a1==a2:false  
    a==a2:true
    2.8
    2.8
    学习的时间不一定要特定安排
  • 相关阅读:
    $dp$模板
    字符串基础
    基础算法

    图论
    山中无甲子,寒尽不知年
    模板集合(持续更新)
    数学基础——同余
    9.19 考试总结
    1-5-17:菲波那契数列
  • 原文地址:https://www.cnblogs.com/zhongzheng123/p/8578243.html
Copyright © 2011-2022 走看看