public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here long l1=9223372036854775757L; long l2=9223372036854775557L; System.out.println(l1); System.out.println(l2); double d1=l1; double d2=l2; System.out.println(d1); System.out.println(d2); if(d1==d2){ System.out.println("d1==d2"); } }}一个简单的例子,两个数相差200,它们的浮点表示就一致了,也就是说这个范围之内的数用double都无法区分了。
public class Main { /**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
long l1=9223372036854775757L;
long l2=9223372036854775557L;
System.out.println(l1);
System.out.println(l2);
double d1=l1;
double d2=l2;
System.out.println(d1);
System.out.println(d2);
if(d1==d2){
System.out.println("d1==d2");
}
}}一个简单的例子,两个数相差200,它们的浮点表示就一致了,也就是说这个范围之内的数用double都无法区分了。
方法可以说明一些问题。