计算器开发遇到精度问题,请指导我

深_SHEN 深_SHEN 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
很简单的问题,
tan(arcsin(sqrt(2.0)/2.0))-1.0
很显然,2分之根2求arcsin就是45度,求tan自然是1.0

但对计算机,就不那么简单了。
计算机得到的tan的结果是1.0000000000000002
1和0总数是16位。

但减1后,结果是2.2...×10^-16显然不是0。
我不敢冒然去掉不可靠的位,因为怕影响后续计算。

据我分析,这是因为减1后,计算机把不可靠的0后的2,当作了有效数字。所以导致了上述结果。
那我怎么办才好呢。
...全文
评论 37
收藏 已收藏
分享
返回顶部
深_SHEN
其它技术问题 3,881 成员 9,044 内容