我在C ++中有一个精度问题。我有两个角度,它们的平均值为pi / 2,它们像pi / 2 +-alpha,因此正弦和余弦的绝对值应该相等。当我在MATLAB中找到它们的正弦值时,它们相等,应该相等。试用:sin(1.25911)
和sin(1.88252)
,其总和为3.1416。但是,当我在C ++中找到这些值时,答案是:0.951818和0.951806
如何提高这些数字的准确性,使获得的数字相等?我可以选择最多3个十进制数字的精度,但我希望将精度保持为6。
答案 0 :(得分:1)
3.1416是pi
的粗略近似。如果您使用更好的价值,那么您将从sin
获得更好的答案。所以,
sin(1.25911)=0.951817787502636
sin(pi-1.25911)=sin(1.88248265358979)=0.951817787502636
请注意,这里我对sin
使用了更准确的输入值,它们的平均值比您的示例更接近pi/2
。