Линейные алгоритмы. В чём ошибка? C#

Код должен на основе входных данный x=3.981x10^-2 y=–1.625x10^3 z== 0.512 находить a. a должен получится a = 1.26185. Но у меня результат a= 2,906636. Подскажите где в коде ошибка. Я думаю напутал где-то в Вычислении арифметических выражений. Само выражение:введите сюда описание изображения

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

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

        private void Form1_Load(object sender, EventArgs e)
        {
            textBox1.Text = "3,981e-2";
            textBox2.Text = "-1,625e3";
            textBox3.Text = "0,512";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // Считывание значения X
            double x = double.Parse(textBox1.Text);
            // Вывод значения X в окно
            textBox4.Text += Environment.NewLine +
             "X = " + x.ToString();
            // Считывание значения Y
            double y = double.Parse(textBox2.Text);
            // Вывод значения Y в окно
            textBox4.Text += Environment.NewLine +
             "Y = " + y.ToString();
            // Считывание значения Z
            double z = double.Parse(textBox3.Text);
            // Вывод значения Z в окно
            textBox4.Text += Environment.NewLine +
             "Z = " + z.ToString();
            // Вычисляем арифметическое выражение
            double a = Math.Pow(2, -x);
            double b = Math.Sqrt(x + Math.Pow(Math.Abs(y), 0.25));
            double c = Math.Pow(Math.Exp(x - 1 / Math.Sin(z)), 1 / 3);
            double u = a * b * c;
            // Выводим результат в окно
            textBox4.Text += Environment.NewLine +
             "Результат a= " + u.ToString();

        }
    }
}

Ответы (1 шт):

Автор решения: Harry

Поскольку неизвестно, в какой локали вы работаете, запись с десятичной запятой

"3,981e2"

может быть как верной, так и неверной (вроде бы так... C# я знаю на уровне чайника, могу ошибаться). Проверьте, что входные значения после преобразования у вас верные, если нет - исправьте запятые на точки.

И еще - деление 1/3 - целочисленное, результат равен 0. Но поскольку

введите сюда описание изображения

я бы просто заменил вычисление c на

double c = Math.Exp((x - 1 / Math.Sin(z))/3);
→ Ссылка