Ich habe kürzlich einen Weg gefunden, den Ausdruck in C # auszuwerten, indem ich die Berechnungsmethode eines datablen Objekts verwende. Hier ist ein Stück Code:
%Vor%Wenn Sie einen einfachen Ausdruck wie "300 * 2" eingeben, wird das funktionieren, aber ein Ausdruck, der eine große Zahl zurückgibt, würde nicht funktionieren, ich bekomme die Nachricht:
"Der Wert ist entweder zu groß oder zu klein für den Typ 'Int32'."
Ich habe versucht, den Typ zu verdoppeln, aber aus irgendeinem Grund zeigt der Fehler immer noch etwas in Bezug auf den Typ Int32, von dem ich nicht sicher bin, woher es kommt.
Eine kleine Hand darauf?
Fügen Sie ".0" den Werten in Ihrer Gleichung hinzu:
%Vor%Wenn, wie Sie sagten, die Gleichung so eingegeben wurde, wie sie ist (d. h. ohne die ".0"), dann müssen Sie möglicherweise eine einigermaßen unangenehme String-Manipulation vornehmen, um dies zu erreichen. Ich habe folgendes gefunden, obwohl ich mir sicher bin, dass es besser geht:
%Vor%Der reguläre Ausdruck versucht zu berücksichtigen, ob Ihr Benutzer bereits eine Dezimalzahl am Ende einer der Zahlen in ihrer Gleichung platziert hat oder nicht.