java之浮点数(笔记)

  1.在计算机中,浮点数并不同等于小数。

public static void main(String[] args) {
        double b1 = 0.1;
        double b2 = 0.2;
        double result = b1 + b2;
        System.out.print(result);
    }

  结果:0.30000000000000004

  原因:计算机使用二进制来存储数据。

  PS. 用浮点数做条件判断时要注意。比如(while(f != 0.3)可以会一直循环)。

  

  2.浮点数中大数加小数

public static void main(String[] args) {
        float f1 = 30000000;
        float f2 = 1;
        float r = f1 + f2;
        if(r < f1)
            System.out.println("left smaller");
        else
            System.out.println("what?");
    }

  结果:what?

  原因:浮点数越大,两个相邻浮点数的间隙越大。

 

  3.浮点数转为其他类型

public static void main(String[] args) {
        System.out.println((int)Double.NaN);
        System.out.println((int)Double.POSITIVE_INFINITY);
        System.out.println((int)Double.NEGATIVE_INFINITY);
    }

  结果:0 

     2147483647
     -2147483648

     

  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。