Ошибка при расчете - "cannot convert from 'method group' to 'double'" - C#
Формулировка задачи:
Здравствуйте!
Делала на c# программу, реализующую подсчет сложных процентов по периодам и вывод соответствующего графика.
Но при запуске возникает 2 ошибки:
1) The best overloaded method match for 'System.Math.Round(double, int)' has some invalid arguments
2) Argument '1': cannot convert from 'method group' to 'double'
Помогите, пожалуйста, разобраться
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using System.Drawing.Drawing2D;
- namespace WindowsApplication1
- {
- public partial class Form1 : Form
- {
- public double d, p, n;
- double sum;
- public int k;
- public Form1()
- {
- InitializeComponent();
- textBox2.MaxLength = 2;
- }
- public static class FunctionSet
- {
- public static double Func1(double d, double p, double n)
- {
- return (d * Math.Pow((1 + (p / 100)), n));
- }
- }
- public void button1_Click(object sender, EventArgs e)
- {
- try
- {
- double d = Convert.ToDouble(textBox1.Text);
- double p = Convert.ToDouble(textBox2.Text);
- double n = Convert.ToDouble(textBox3.Text);
- double inter = Convert.ToDouble(textBox5.Text);
- sum = (d * Math.Round(Math.Pow((1 + (p / 100)), n), 2));
- textBox4.Text = Convert.ToString(sum);
- textBox4.Text = Convert.ToString(sum); //преобразуем число в строку
- }
- catch (FormatException)
- {
- MessageBox.Show("Неверный ввод данных");
- return;
- }
- if (textBox1.Text == "")
- {
- MessageBox.Show("Не введена сумма!");
- }
- if (textBox2.Text == "")
- {
- MessageBox.Show("Не введен процент!");
- }
- if (textBox3.Text == "")
- {
- MessageBox.Show("Не введено количество периодов!");
- }
- else
- {
- sum = Math.Round(FunctionSet.Func1, 4);
- }
- }
- public delegate double Func(double x);
- public double Raschet(Func k)
- {
- double sum = 0.0;
- double d = Convert.ToDouble(textBox1.Text);
- double p = Convert.ToDouble(textBox2.Text);
- double n = Convert.ToDouble(textBox3.Text);
- double inter = Convert.ToDouble(textBox5.Text);
- double h;
- h = n / inter; //шаг
- for (int i = 1; i <= n; i++)
- {
- sum += d * Math.Round(Math.Pow((1 + (p / 100)), n), 2);
- }
- sum += h;
- return sum;
- }
- private void button2_Click(object sender, EventArgs e)
- {
- //this.Stroi(FunctionSet.Func1);
- }
- public void Stroi(Func z)
- {
- Graphics g = graphWind.CreateGraphics();
- g.Clear(Color.White);
- Pen myPen = new Pen(Color.Black);
- int MaxX = graphWind.Width;
- int MaxY = graphWind.Height;
- //double d = Convert.ToDouble(textBox1.Text);
- //double p = Convert.ToDouble(textBox2.Text);
- //double n = Convert.ToDouble(textBox3.Text);
- double inter = Convert.ToDouble(textBox5.Text);
- double h = n / inter;
- int k = System.Convert.ToInt32(inter);
- double[] Xx = new double[k + 1];
- double[] Y1 = new double[k + 1];
- Xx[0] = 1;
- for (int i = 0; i < k - 1; i++)
- {
- Xx[i + 1] = Xx[i] + h;
- }
- Y1[0] = d;
- for (int i = 0; i < k - 1; i++)
- {
- Y1[i] = Xx[i];
- }
- double[] X = new double[k + 1];
- double[] Y = new double[k + 1];
- double Ymax = Y1[0];
- double Ymin = Y1[0];
- g.DrawLine(myPen, 0, 0, MaxX, 0);
- g.DrawLine(myPen, 0, 0, 0, MaxY);
- for (int i = 0; i < k; i++)
- {
- if (Ymax < Y1[i])
- {
- Ymax = Y1[i];
- }
- if (Ymin > Y1[i])
- {
- Ymin = Y1[i];
- }
- }
- // for (int i = 0; i < k; i++)
- // {
- // X[i] = MaxX * (Xx[i] - a) / (b - a);
- // Y[i] = MaxX - MaxY * ((Y1[i] - Ymin) / (Ymax - Ymin));
- // }
- for (int i = 1; i < k - 1; i++)
- {
- g.DrawLine(myPen, (float)(X[i]), (float)(Y[i]), (float)(X[i + 1]), (float)(Y[i + 1]));
- g.DrawRectangle(myPen, (float)(X[i - 1]), (float)(Y[i - 1]), (float)(h), (float)(MaxY - Y[i]));
- }
- g.Dispose();
- }
- }
- }
Решение задачи: «Ошибка при расчете - "cannot convert from 'method group' to 'double'"»
textual
Листинг программы
- Math.Pow((1 + (p / 100)), n)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д