我目前正在为Windows Phone编写计算程序。其中一个计算是,如果找到用户输入的数字的正切,则是用户输入的另一个数字。
问题是当我输入1 * tan(45)(即1)时它返回1.6 ....我通过调试器运行了几次。我可以看到45进入Math.Tan,输出为1.6。
请帮我确定这个问题的原因。代码如下。
double result;
double multiplying = Convert.ToDouble(txtMultTan.Text);
double tangent = Convert.ToDouble(txtTan.Text);
result = multiplying * (Math.Tan(tangent));
txtResult.Text = "Answer= " + result;
答案 0 :(得分:7)
我敢肯定,如果您阅读文档,您会发现trig函数期望输入为弧度。要将度数转换为弧度,请乘以pi/180.0
,使用数学库提供的pi
预定义常量。
答案 1 :(得分:1)
问题的原因是Math.Tan
的参数必须是弧度,并且你似乎给它一个度数值。将值乘以pi / 180,您应该得到预期的结果。
有关详细信息,请参阅radians上的维基百科文章。
答案 2 :(得分:1)
Math.Tan
的论据预计是弧度。多个Math.PI/180.0
。例如:
const double DTR = Math.PI / 180.0;
double angle = 45;
Console.WriteLine(Math.Tan(angle * DTR)); // Prints 1
答案 3 :(得分:0)
它是弧度的。
在“普通”.NET中就是这种情况 - 试试吧。
Console.WriteLine(Math.Tan(45));
答案 4 :(得分:0)
实际上,当我在谷歌上运行Tan(45)时,结果实际上是1.6。 Link
答案 5 :(得分:0)