从双精度值中删除尾随零
本文关键字:删除 双精度 | 更新日期: 2023-09-27 18:33:10
我在尝试实现的解决方案中遇到了一个问题,即我需要能够使用 C#
从双精度值中删除尾随零。
例如,如果我创建两个表示公式的对象,则可以说这两个公式 (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
的引用。此列表必须包含相同的值,重写的"等于"方法才能返回 true。
你不需要 RegExp,只需使用 Math.Round(Double, Int32(。
试试这个:
double num = 587.21500;
var res = Double.Parse(num.ToString("G29"));
double variable = 56.123456;
string twoplaces = String.Format("{0:0.##}", variable);
?