C#数学表达式解析器使用大数字

问题描述:

我使用.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'类型的结果。 –

如果您很乐意处理整数,那么您应该可以使用BigInteger来执行这些操作。

它没有理论上限或下限,所以你不应该有问题(除非你用完内存来存储那个数字)。