Swift中的三角函数

时间:2015-08-17 09:25:15

标签: ios swift trigonometry sin cos

我是iOS的初学者。我使用一些在线教程来学习Swift,现在我正在尝试开发自己的计算器。有一个任务是由我自己的“罪”和“cos”按钮,它将返回输入值的正弦或余弦函数。

当然,Swift中有sin()和cos()函数,但我发现,它以弧度返回值,而不是度。我做了搜索并找到了代码,就像那样

func sind(degrees: Double) -> Double {
return sin(degrees * M_PI / 180.0)
}
我在我的代码中实现的

。现在一切都很好,按钮返回正确的值。但是180度的正弦值为0,当我在计算器中输入180并按“sin”按钮时,它返回另一个值。对于90度的余弦相同,应为0但返回另一个值。

你能解释一下如何修复它吗? github上的完整代码:https://github.com/senator14/firstcalculator.git

1 个答案:

答案 0 :(得分:3)

正弦和余弦函数的问题是M_PI是一个无理数,大约定义为3.14159265358979323846264338327950288,这意味着它有一些错误。

您的问题的一个可能的解决方案是将输入形式的范围-PI / 2转换为PI / 2。这减少了近似误差。以下内容将您的范围更改为-90到90度。

sin(((fmod($0, 360) > 270 ? fmod($0, 360) - 270 : ((fmod($0, 360) > 90) ? 180 - fmod($0, 360) : fmod($0, 360))) * M_PI / 180.00)) }

来自here

的参考资料