2017-06-12 6 views
-1

Ich arbeite an einem .net Projekt und brauche einen mathematischen Ausdruck Parser, um einfache Formeln zu berechnen.C# math Ausdrucksparser mit großen Zahlen arbeiten

Ich verwendete mXparser, aber es schien nicht mit großen Dezimalzahlen (mehr als 16 Ziffern) arbeiten.

Zum Beispiel hat das Ergebnis der Formel 2469123211254289589

sein, aber es gibt 2.46912321125428E+17 und wenn ich decimal.parse verwende es zu konvertieren dezimal es mir 2469123211254280000 gibt.

Gibt es einen anderen Parser, um dieses Problem zu lösen? oder Gibt es einen anderen Weg, um mit diesem Problem umzugehen?

+0

Sie müssen eine "große Ganzzahl" -Bibliothek verwenden. –

+0

danke @jonathon. Könnten Sie bitte eine Bibliothek nennen? –

+0

Möglicherweise müssen Sie eine [Quad-Bibliothek] (https://quadruple.codeplex.com/SourceControl/latest#Quadruple/Quadruple/Quad.cs) mit einem [Ausdrucksparser] (https://msdn.microsoft.com) kombinieren /en-us/magazine/mt573716.aspx) auf eigene Faust. Die mir bekannten Parser verwenden doppelte Ergebnisse. –

Antwort

1

Wenn Sie mit Ganzzahlen zufrieden sind, dann sollten Sie in der Lage sein, BigInteger zu verwenden, um diese Arten von Operationen auszuführen.

Es hat keine theoretischen oberen oder unteren Grenzen, so dass Sie kein Problem haben sollten (es sei denn, Sie haben nicht genug Speicher, um diese Nummer zu speichern).