08/03/07 14:43:59
>>216
>>226でもいいけど、long が 64ビットなのに対して double の仮数部は 53ビットしかない。
だから例えば
System.out.println(Double.compare(0x20000000000000L, 0x20000000000001L)); //=> 0
System.out.println(0x20000000000000L == (double)0x20000000000001L); //=> true
逆に言うと、あらかじめ精度が必要ない事が判っていれば
Double#compare(double, double) で構わない。