調査した後も、私の問題の特定の解決策はまだ見つかりません。私はhashCodeメソッドが正確な値を使用している間、イプシロンを使用する "ほぼ等しい"メソッドを持っています。これは、値を比較するときにHashSetの前提条件を破ります。 @Override
public boolean equals(Object o) {
if (o == this)
return tru
としてイプシロンの平方根を使用するこの質問は、言語に依存しないかもしれないが、私はthis post using Rが少ないようイプシロンの平方根を使用して言及しました:平方根があるのはなぜ is.wholenumber <-
function(x, tol = .Machine$double.eps^0.5) abs(x - round(x)) < tol
^0.5 ?どのような助
いくつかのMATLABコードに見ながら、私はこの(簡易版) is = 1.414 % just any floating point value
tol=1.e-4
s=sign(is); if(s==0), s=1; end;
is=s*abs(is)*tol/eps
を見つけました。しかし、それは私には意味がありません。以下のコードとの違いは何ですか? tol=1.e-4
is=i