【发布时间】:2014-03-05 12:49:37
【问题描述】:
我正在尝试在 C# 中的控制台应用程序上获得一个简单的结果
Console.Write("Enter a number: ");
double x = Convert.ToDouble(Console.ReadLine());
x=(7*x/4+1/2) - (5*x/4+1/2)*Math.Acos(Math.PI*x);
Console.WriteLine(x);
这导致了 NaN,我不知道为什么。我不是很精通编程,所以我确信它是显而易见的。谢谢!
编辑:应该是 Math.Cos,而不是 Math.Acos。现在我遇到了别的东西,当我输入说 x=3 时,它返回的结果是 9;但是,it should result in 10。有什么原因吗?
【问题讨论】:
-
我相信你只能取 -1 和 1 之间数字的 arccos。所以你必须确保
(Math.PI*x)会产生一个介于 -1 和 1 之间的数字。 -
如果您还有第二个问题请提出一个新问题。每个问题一个问题!
-
另外,如果你不破坏你的数据,你会发现你的程序更容易调试。说
double result = (7... Console.WriteLine(result);而不是破坏x的值。变量很便宜;做很多。 -
这里有一个提示:如果你说
(7.0 * x / 4.0 + 1.0 / 2.0 )...等等。那么你得到正确答案了吗?你明白为什么会有不同吗?1/2为零,1.0/2.0为0.5。 C# 进行整数算术in integers.