use*_*679 0 java math trigonometry angle
我的Math.cos()
方法有点问题.我知道,我必须在使用之前将角度转换为Radians Math.cos()
.但如果我这样做:
System.out.println(Math.cos(Math.toRadians(90));
Run Code Online (Sandbox Code Playgroud)
输出:6.123233995736766E-17
Math.sin()
运作良好.
从三角学:
sin x ~= x, for small values of x
sin x = cos x+pi/2
Run Code Online (Sandbox Code Playgroud)
因为pi/2不能在IEEE-754浮点中精确表示,这意味着它必须偏离某个值x,即它由pi/2 + - x表示,其中x <最低有效位浮点系统.在这种情况下,2 ^ -53 = 1.1102e-16.
在这种特殊情况下,x~ = 6.123233995736766E-17,约为最大误差的55%.所以,这是一个相当不错的结果......