作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个公式,其中包含用户必须猜测的变量。但是在公式的末尾,该变量会再次计算,如果第一个和第二个不匹配,则必须使用新值再次求解公式。暂时假设我有一个这样的公式(我的公式比这个复杂得多,也更长);
double y1 = Convert.ToDouble(txtboxPredefinedY.Text);
double x, z, Ort;
double y2 = 0;
while (y1 != y2)
{
x = (Math.Pow(y1, 2)) + 10;
z = (y1 - 2) / 3;
y2 = (x / z);
Ort = (y2 + y1)/2;
y1 = Ort;
if (y1 == y2)
break;
}
txtboxResult.Text = r.ToString();
所以我首先定义的 y1
变量必须匹配最后一个变量 y2
。为此,我计算了整个公式并找到一个新的 y1
,重新计算公式。
我想定义一个 y1
值并让应用程序纠正我。例如,此代码应返回值 3.3158
。如果第一个输入是 3.3158
,那么 y1
就等于 y2
。
我无法正确使用 while
迭代。我怎样才能解决这个问题?或者,我应该如何构建我的 while
block 来给出精确的方程式?
最佳答案
在使用 Double
时,您应该与 tolerance 进行比较:
double y1 = Convert.ToDouble(txtboxPredefinedY.Text);
double x, z, Ort;
double y2 = 0;
double tolerance = 0.001;
while (Math.Abs(y1 - y2) >= tolerance) {
x = (Math.Pow(y1, 2)) + 10;
z = (y1 - 2) / 3;
y2 = (x / z);
Ort = (y2 + y1)/2;
y1 = Ort;
}
像 y1 != y2
和 y1 == y2
这样的比较可能会因为舍入错误而失败。
关于c# - C# 中未知数的迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26016455/
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Combination of List> 我有多个列表,可以是 2 个或 3 个,最多 10 个列表,有多个
我是一名优秀的程序员,十分优秀!