私が達成しようとしている解決策で問題が発生しました。つまり、を使用して double 値から末尾のゼロを削除できるようにする必要がありますC#
。
たとえば、数式を表す 2 つのオブジェクトを作成する場合、2 つの数式(2.0 + 7)と (2.000 + 7) は等価であると言えます。つまり、 (2.0 + 7) == (2.00000 + 7)
. ただし、これにアプローチする最善の方法はわかりません。正規表現を考えていますが、探している結果が得られるかどうかはわかりません。
この場合、問題が発生するようresolution
です。たとえば、2.0 + 7 と 2.000000001 + 7 という 2 つの式は同じではありませんが、非常に近いものです。私の質問は、正規表現でこれを説明できるでしょうか? 同様に、正規表現が最善の方法でしょうか?
さらに詳しく説明すると、以下は合法であるはずです。
Assert.IsTrue(new Formula("2.0 + x7").Equals(new Formula("2.000 + x7")))
クラス内Formula
には、文字列への参照を格納するフィールドがList
あります。オーバーライドされた「Equals」メソッドが true を返すためには、このリストに同じ値が含まれている必要があります。