Swift 中的三角函数[重复]

2024-01-06

我是 iOS 的初学者开发者。我使用一些在线教程来学习 Swift,现在我正在尝试开发自己的计算器。我自己有一个任务是按下“sin”和“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 https://github.com/senator14/firstcalculator.git


正弦和余弦函数的问题是 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 https://stackoverflow.com/a/6566525/2082521

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift 中的三角函数[重复] 的相关文章

随机推荐