私は比較する小数点が2つあります。一つはprecision=22
とscale = 8
でNHibernateのでマッピングされたDBテーブルを形成しています、私は時計でそれを見ることができるように値の例を見てみましょう:スケールとの小数点の比較
77.47234902
私はとの比較だものである:
77.472349025229
もちろん厳密な平等は失敗します。私は、違いが特定のイプシロンの下にあるかどうかを確認することができることを知っています。私は精度とスケールが最初の市民であることを尋ねているだけです。
EDIT はちょうど私が、この拡張メソッドを作成する@ V4Vendetta応答を起草:それは作品
public static class ScaleComparer
{
public static bool ScaleEquals(this decimal lhs, decimal rhs, int scale)
{
decimal mult = (decimal)Math.Pow(10, scale);
return decimal.Truncate(lhs * mult)/mult == decimal.Truncate(rhs*mult)/mult;
}
}
が、私は本当にthere'shoudたぶん、あなたは試みることができる賢く何か:)
「a-b <イプシロン」が最もスマートで最も速いと思った後、「内部」関数はおそらく同じ方法を使用します。 – nobody