Mor*_*tch 0 c++ trigonometry cmath
我目前正在做一个我已经做了近一年的个人项目.我正在尝试将其移植到Windows环境中,该环境已成功完成.因为我试图尽快将Windows版本发布给人们,所以我决定继续在Windows中开发,同时尝试添加新功能并获取已存在数月的错误.虽然最近尝试添加严重依赖于三角函数的功能,但我发现无论我传递的参数如何,奇怪的是,所有3个三角函数都返回相同的值(1072693887).可以想象,这导致了系统中一些相当奇怪的错误.
我有math.h包含,据我所知,没有其他文件包含此功能.(也许有一个调试器命令来查找符号定义的位置?我找不到任何这样的东西,但也许我错过了一些东西.)我试过去别的地方搜索并在Google上搜索,但无济于事......
有没有其他人之前听说过这个问题,或者知道如何修复它?
编辑:这个答案是无关紧要的.看评论.
这可能是由于数值不稳定造成的.
当你通过这样一个较大的值到sin(),cos()或任何的周期性三角函数,你要记得,有通过的隐式模2*pi.
如果你正在使用float,那么不确定性1072693887就会超过2*pi.因此,无论你得到什么结果都是垃圾.
我们需要看一些代码才能确切地看到发生了什么.
编辑:这是一个例子:
sin(1072693886) = 0.6783204666
sin(1072693887) = -0.2517863119
sin(1072693888) = -0.9504019164
Run Code Online (Sandbox Code Playgroud)
但如果数据类型是float,那么不确定性1072693887是+/- ~64......