int 和 booleam 不能直接转换,如下语法是不能通过的:
boolean b = true; int i = (int) b; int j = 1; boolean a = (boolean) j;
对两个浮点数作相当比较时,经常不会得到想要的结果,如下:
double x=1.0 - 0.1 - 0.1 -0.1 - 0.1 - 0.1; System.out.println(x == 0.5);
你可能期望打印 true, 但是会打印 false, 这跟浮点数的存储方式有关,实际上x不是0.5,而是0.5000000000000000001.
既然不能直接比较是否相等,可以比较二者差的绝对值是否小于某个非常小的极限值,可用如下公式来间接比较二者是否相等:
if |x - y| < ε, 其中的 ε 就是要采用的极限值,通常比较 double 类型的值时用1E-14, 比较 float 类型的值时用1E-7.
所以上面的比较可以改写为:
final double EPSILON = 1E-14; double x=1.0 - 0.1 - 0.1 -0.1 -0.1 -0.1 -0.1; if (Math.abs(x-0.5)<EPSLION){ System.out.println("二者无限接近") }
使用Math.random()产生一个0.0到1.0(不含)之间的浮点数
System.exit(int status); 用于终止程序,0表示正常退出,非0表示非