我试图实现的解决方案中遇到问题,即我需要能够使用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
的字段。此列表必须包含相同的值才能使重写的“Equals”方法返回true。
你正在使用哪种语言?为什么你认为正则表达式是适合这个的任务?使用您正在使用的语言的相应API以这种方式格式化数字。就像有1或2个小数位,左右。 –
@RohitJain C#。我对正则表达式并不是很满意,但是凭借我的经验,在确保解决方案的同时删除任何尾随的零似乎有点不重要。我不能将double值保留到1或2个小数位,因为我需要通过spec来确保精度。 – Jonathan
您可以使用Math.Round(数字,小数位数) –