C# 我能';不要用代码写复杂的方程

C# 我能';不要用代码写复杂的方程,c#,visual-studio,math,equation,C#,Visual Studio,Math,Equation,我一直在试图把这个复杂的方程式转换成代码,看来我可能做错了什么。下面是方程式的图像: 这是我尝试使用的第一个代码,用于将等式转换为代码 double answer = 1 - (Math.Pow(f, n) * ((s * l / f) + Math.Pow((20 / f), w) / Math.Pow(20, n))); 以下是我在第二次尝试中使用的代码: double answer = 1 - Math.Pow(f, n) * ((s * l) / f) + Math.Pow((20

我一直在试图把这个复杂的方程式转换成代码,看来我可能做错了什么。下面是方程式的图像:

这是我尝试使用的第一个代码,用于将等式转换为代码

double answer = 1 - (Math.Pow(f, n) * ((s * l / f) + Math.Pow((20 / f), w) / Math.Pow(20, n)));
以下是我在第二次尝试中使用的代码:

double answer = 1 - Math.Pow(f, n) * ((s * l) / f) + Math.Pow((20 / f), w) / Math.Pow(20, n);
如果我假设方程的每个变量都是2,那么我得到-.02。但是当我运行代码时,第一次尝试代码返回的值为-8,而第二次尝试返回的值为-6.75


我的代码现在有什么地方做错了吗?如果我不擅长解释东西,也很抱歉。

我测试了一下,结果是-0.02。尝试拆分代码,使其更清晰。它可以帮助您在一行上诊断复杂方程的语法

double f = 2;
double n = 2;
double s = 2;
double w = 2;
double l = 2;


double A = Math.Pow(f, n);
double B = (s * l) / f;
double C = Math.Pow((20 / f), w);
double bottom = Math.Pow(20, n);
double top = A * (B + C);
double answer = 1 - top / bottom;

在两次尝试中,你只是把括号放错了位置

试试这个:

double answer =
    1 - Math.Pow(f, n) * (s * l / f + Math.Pow((20 / f), w)) / Math.Pow(20, n);

请尝试使用以下公式:


double-answer=(1-Math.pow((Math.pow(f,n)*[s*l/f+20/f})),w)/Math.pow(20,f)

如果您能提供一个我们可以复制并粘贴到控制台应用程序中的模板,那就太棒了。请确保包含示例输入和预期的示例输出。此外,我建议您将代码拆分,而不是将其全部放在一行中。例如,一行可能是
var bob=s*l/f;
。通过拆分,您可以删除ug一行一行地通过它。在每一行执行之前,问自己“我在这里期望什么值?”然后运行这一行。如果没有得到您期望的值,您的bug(或其中一个bug)在那条线上。我必须记下我从未意识到的一点!非常感谢!你提出的公式是不正确的。变量被错误地使用了,你的解决方案需要仔细考虑。