許容値はでっちあげなので、要調整
public class Main{
private static final double ABS_TOLERANCE = 2.2204460492503131E-14; // absolute tolerance
private static final double REL_TOLERANCE = 1E-13; // relative tolerance
static public boolean equals(double a, double b){
double abs_diff = Math.abs(a - b);
if(abs_diff <= ABS_TOLERANCE)
return true;
if(abs_diff <= REL_TOLERANCE * Math.max(Math.abs(a), Math.abs(b)))
return true;
return false;
}
static public int compare(double a, double b){
if(equals(a, b))
return 0;
return (a < b)? -1 : 1;
}
}
0 件のコメント :
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。