zoukankan      html  css  js  c++  java
  • Java学习笔记(2)

    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表示非



  • 相关阅读:
    codevs1004 四子连棋
    codevs1009 产生数
    NOIP2014 寻找道路
    Tyvj1139 向远方奔跑(APIO 2009 抢掠计划)
    随机算法
    线性基
    线性基入门
    线性基 + 并查集
    欧拉公式 (平面)
    卡特兰数 + 大数
  • 原文地址:https://www.cnblogs.com/xclw/p/10496050.html
Copyright © 2011-2022 走看看