public void Add_Exp(string str) { if (chart1.Series.IndexOf(str) != -1) { chart1.Series[str].Points.Clear(); } else { chart1.Series.Add(str); } chart1.Series[str].ChartType = SeriesChartType.Line; str = graphAdd.get_Expression(); try { MathParser g = new MathParser(); double y; for (double i = xmin; i <= xmax; i += 0.01F) { g.setArgumentValue(i); y = g.Calculate(str); if (Math.Abs(y) > 99999 || Math.Abs(y) < -99999) { } else { if (y != double.NaN) { chart1.Series[str].Points.AddXY(i, y); } } } } catch {} }
static void Main(string[] args) { IContext context = new Context(); context.AddConst("a", 0.2); context.AddConst("b", 0.3); context.AddConst("c", -0.3); var mathParser = new MathParser(context); try { var result = mathParser.Calculate("2+3*4"); if (result.IsValid) { Console.WriteLine($"result = {result.Result}"); } else { Console.WriteLine(String.Join(Environment.NewLine, result.Errors)); } } catch (InvalidOperationException ex) { Console.WriteLine(ex.Message); } Console.ReadKey(); }
private void button15_Click(object sender, EventArgs e) { string str = textBox_Result.Text; MathParser g = new MathParser(); textBox_Result.Text = g.Calculate(str).ToString(); result = textBox_Result.Text; }
private void button12_Click(object sender, EventArgs e) { MathParser g = new MathParser(); try { string str = textBox2.Text; g.setArgumentValue(Convert.ToDouble(str)); labelResult.Text = g.Calculate(textBox1.Text).ToString(); } catch { } }
public void WhenExpressionIsCorrect_Then_ResultIsReturned(string expression, double result) { var context = new Context(); context.AddConst("b", 0.2); var mathParser = new MathParser(context); var calculationResult = mathParser.Calculate(expression); Assert.True(calculationResult.IsValid); Assert.True(calculationResult.Result == result); }
private void _transaction_CellEndEdit(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == 0) { if (_transaction.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null && _transaction.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()[0] == '=') { //if this is a formula then let's process it MathParser parser = new MathParser(); string tmp = _transaction.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); decimal value = parser.Calculate(tmp.Substring(1, tmp.Length - 1)); _transaction.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = value; } } }
private static bool DoMath(VM interpreter, Token <R> firstToken, PatternReader reader, State state) { var tokens = reader.ReadToTokenInParentScope(firstToken.ID, Delimiters.All); interpreter.PushState(State.CreateSub(reader.Source, tokens, interpreter)); state.Pre(new DelegateBlueprint(interpreter, _ => { var expression = _.PopResultString().Trim(); var v = MathParser.Calculate(_, expression); if (!expression.EndsWith(";")) { _.Print(_.FormatNumber(v)); } return(false); })); return(true); }
public void Calculate(float scale) { if (!_active) { return; } if (!_parsed) { _parsed = ParseFormula(); } if (_source != null) { _parser.Parameters[MathParser.Variables.X] = _source.Value; } _parser.Parameters[MathParser.Variables.F] = _fixedValue; _parser.Parameters[MathParser.Variables.S] = _nw.Seed; _parser.Parameters[MathParser.Variables.R] = _random.NextDouble(); _value = _parser.Calculate(_formula) * scale; // _value = Utils.Math.Clamp(_value, 0.0, 1.0); }
private void button1_Click(object sender, EventArgs e) { var chart = chart1.ChartAreas[0]; chart.AxisX.IntervalType = DateTimeIntervalType.Number; chart.AxisX.LabelStyle.Format = ""; chart.AxisY.LabelStyle.Format = ""; chart.AxisY.LabelStyle.IsEndLabelVisible = true; chart.AxisX.Maximum = xmax; chart.AxisX.Minimum = xmin; chart.AxisY.Maximum = ymax; chart.AxisY.Minimum = ymin; chart.AxisX.Interval = xint; chart.AxisY.Interval = yint; chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.LightGray; chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.LightGray; if (chart1.Series.IndexOf("First") != -1) { chart1.Series["First"].Points.Clear(); } else { chart1.Series.Add("First"); } chart1.Series["First"].ChartType = SeriesChartType.Line; chart1.Series["First"].Color = Color.Blue; if (chart1.Series.IndexOf("AxisX") != -1) { chart1.Series["AxisX"].Points.Clear(); } else { chart1.Series.Add("AxisX"); } chart1.Series["AxisX"].ChartType = SeriesChartType.Line; chart1.Series["AxisX"].Color = Color.Black; chart1.Series["AxisX"].Points.AddXY(0, ymax); chart1.Series["AxisX"].Points.AddXY(0, ymin); if (chart1.Series.IndexOf("AxisY") != -1) { chart1.Series["AxisY"].Points.Clear(); } else { chart1.Series.Add("AxisY"); } chart1.Series["AxisY"].ChartType = SeriesChartType.Line; chart1.Series["AxisY"].Color = Color.Black; chart1.Series["AxisY"].Points.AddXY(xmin, 0); chart1.Series["AxisY"].Points.AddXY(xmax, 0); chart1.Legends.Clear(); ChartArea CA = chart1.ChartAreas[0]; // quick reference CA.AxisX.ScaleView.Zoomable = true; CA.CursorX.AutoScroll = true; CA.CursorX.IsUserSelectionEnabled = true; chart1.ChartAreas[0].AxisX.LabelStyle.Format = ("#0.00"); chart1.ChartAreas[0].AxisY.LabelStyle.Format = ("#0.00"); try { MathParser g = new MathParser(); double y; if (g.check(textBox1.Text)) { for (double i = xmin; i <= xmax; i += 0.01F) { g.setArgumentValue(i); y = g.Calculate(textBox1.Text); if (y != double.NaN) { if (Math.Abs(y) > 99999 || Math.Abs(y) < -99999) { } else { chart1.Series["First"].Points.AddXY(i, y); } } } } else { MessageBox.Show("Invalid expression."); } } catch { } }