Swift中的三角函数

我是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

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

您的问题的一个可能解决方案是将输入forms-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)) } 

从这里参考