从双值中删除尾随零

时间:2013-09-27 05:02:21

标签: c# regex string replace double

我在我想要实现的解决方案中遇到了一个问题,即我需要能够使用C#从double值中删除尾随零。

例如,如果我创建了两个代表公式的对象,那么可以说两个公式(2.0 + 7)和(2.000 + 7)等效。也就是(2.0 + 7) == (2.00000 + 7)。但是,我不确定解决这个问题的最佳方法是什么。我正在考虑正则表达式,但我不确定我能否得到我想要的结果。

在这种情况下,resolution似乎存在问题。例如,两个公式2.0 + 7和2.000000001 + 7不相同,但它们非常接近。所以我的问题是,正则表达式可以解释这个吗?同样,正则表达式是最好的方法吗?

通过更详细说明,以下内容应该是合法的。

Assert.IsTrue(new Formula("2.0 + x7").Equals(new Formula("2.000 + x7")))

Formula类中,有一个字段存储对List个字符串的引用。此列表必须包含相同的值,以便重写的“Equals”方法返回true。

3 个答案:

答案 0 :(得分:3)

您不需要RegExp,只需使用Math.Round(Double, Int32)

答案 1 :(得分:0)

试试这个:

double num = 587.21500;
var res = Double.Parse(num.ToString("G29"));

答案 2 :(得分:0)

double variable = 56.123456;
string twoplaces = String.Format("{0:0.##}", variable);