Beim Versuch, einen einfachen C# Mathe-Rechner zu finden, habe ich einen unten gefunden. C# Math calculatorÜber die Syntax von C# DataTable.Compute()
Es ist ideal für mich, da es keine COM oder andere Drittanbieter-Referenz benötigt. Allerdings habe ich eine verwirrende Sache herausfinden:
new DataTable().Compute("2-3/4*12", null) // Works fine, answer is -7;
new DataTable().Compute("2/0", null) // Works but not correct, answer is 8;
new DataTable().Compute("100/0", null) // Works but not correct, answer is 8;
new DataTable().Compute("2.0/0", null) // Throw System.DivideByZeroException as estimated.
So würde ich fragen, was ist los mit den zweiten und dritten Zeilen? Ist die Rechenmethode das "/" anders zu behandeln?
Ich habe gelesen: https://msdn.microsoft.com/en-us/library/system.data.datatable.compute.aspx, aber nichts hilfreiches.
Siehe [hier] (http://stackoverflow.com/questions/4609698/inconsistency-in-divide-by-zero-behavior-between-different-value-types). Es hat etwas mit den Datentypen zu tun, die im Hintergrund verwendet werden. Wenn Sie versuchen würden, 'var divByZero = 2/0;' zu verwenden, erhalten Sie den Kompilierungsfehler –
@ Nitro.de. Ich denke, mein Problem unterscheidet sich von dem, auf das Sie sich bezogen haben. Da ich kein double oder int deklariere, benutze ich nur writeline, um das Ergebnis zu sehen. – Mamsds
Richtig Sie nicht, aber wissen Sie, was Computer im Hintergrund tut? –