0

私が達成しようとしている解決策で問題が発生しました。つまり、を使用して 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 を返すためには、このリストに同じ値が含まれている必要があります。

4

3 に答える 3

3

RegExp は必要ありません 。 Math.Round(Double, Int32)を使用するだけです。

于 2013-09-27T05:10:40.623 に答える
0

これを試して :

double num = 587.21500;
var res = Double.Parse(num.ToString("G29"));
于 2013-09-27T05:13:31.773 に答える
0
double variable = 56.123456;
string twoplaces = String.Format("{0:0.##}", variable);

?

于 2013-09-27T05:14:46.950 に答える