我試圖實現的解決方案中遇到問題,即我需要能夠使用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(數字,小數位數) –