windows 形式的函数中的大数字

Big numbers in function in windows forms

我正在尝试做一个函数图,它可以工作,但由于某种原因,当我显示函数时它给了我很大的数字,我不知道为什么代码对我来说看起来不错,也许我使用的示例有问题。如果您出于某种原因想知道这 3 个文本框中写的是什么,这里 - 第一个是起点,第二个是终点,最后一个是步骤。

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            {
                {
                    double xn = Convert.ToDouble(textBox1.Text);
                    double xk = Convert.ToDouble(textBox2.Text);
                    double xh = Convert.ToDouble(textBox3.Text);
                    if ((xn >= xk) || (xh > (xk - xn))) { MessageBox.Show("Данные заполнены неверно"); }
                    else
                    {
                        double z;
                        double x = xn;
                        while (x <= xk)
                        {
                            if (x <= 0) z = (1 + x) / Math.Pow(1 + Math.Pow(x, 2), 1 / 3);
                            else
                             if (x > 0 && x <= 1) z = -x + Math.Exp(-2 * x);
                            else z = Math.Pow(Math.Abs(2 - x), 1 / 3);
                            chart1.Series[0].Points.AddXY(x, z);
                            x += xh;


                        }

                    }
                }
            }
        }

我相信您的问题可能出在表达式中两个整数 1 / 3 之间的除法

Math.Pow(1 + Math.Pow(x, 2), 1 / 3)

因为

double oneThirdWrong = 1 / 3; // is equal to 0

你可能会期待

double oneThirdRight = 1 / (double)3; // is 0.333...

测试代码(.Net Core 3)

Console.WriteLine($"One-third wrong {1/3}" );
Console.WriteLine($"One-third right {1/3.0}" );