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