C#--三角函数问题
小编在一次通过C#计算三角函数的时候发现程序计算出来的结果与书本上的结果不一致(什么 什么 计算机会出错吗 那肯定是你没好好学习数学)
调用Math的三角函数方法
示例如下:
数学说:sin(180°) = 0
程序说:Math.Sin(180)
所以 Math.Sin(180) = -0.80115263573383044?
小编当场晕厥 于是换了一种思路:
Math.Sin(Math.PI) 看看结果
所以 Math.Sin(Math.PI) = 1.2246063538223773E-16?
个人简单分析:
1.浮点数在二进制和十进制之间转换会丢失精度
2. pi 是无理数,计算机取的是近似值
个人解决思路:
更改结果精度
更改如下:
Math.Round(Math.Sin(Math.PI), 5)
Math.Round(Math.Sin(Math.PI), 5) = 0
所以个人在使用三角函数时就会用以下格式:
Math.Round(Math.Sin(角度 * 1.00 / 180 * Math.PI), 5)
原创博客请在转载时保留原文链接或者在文章开头加上本人博客地址,如发现错误,欢迎批评指正。凡是转载于本人的文章,不能设置打赏功能,如有特殊需求请与本人联系!