2017-06-12 44 views
-1

我使用.net項目,需要數學表達式解析器來計算簡單公式。C#數學表達式解析器使用大數字

我用mXparser,但它似乎無法與大十進制數字(超過16位數字)工作。

例如,公式的結果必須是2469123211254289589

但它返回2.46912321125428E+17,當我使用decimal.parse轉換爲十進制它給了我2469123211254280000

是否有另一個解析器來解決這個問題? 或 是否有另一種方法來處理這個問題?

+0

您需要使用「大整數」庫。 –

+0

謝謝@jonathon。你能舉個例子嗎? –

+0

您可能必須將[quad庫](https://quadruple.codeplex.com/SourceControl/latest#Quadruple/Quadruple/Quad.cs)與[expression parser](https://msdn.microsoft.com /en-us/magazine/mt573716.aspx)。我知道的解析器使用'double'類型的結果。 –

回答

1

如果您很樂意處理整數,那麼您應該可以使用BigInteger來執行這些操作。

它沒有理論上限或下限,所以你不應該有問題(除非你用完內存來存儲那個數字)。