トリグ関数を作成する際にmy_sind(d)、my_cosd(d)、my_tand(d)、度引数はなくラジアンいずれかを使用し、90の倍数で正確な回答を提供される、私は結果が時々あったことに気づいた-0.0のではなく0.0。
my_sind( 0.0) --> 0.0
my_sind(-0.0) --> -0.0
my_sind(180.0) --> -0.0
my_sind(360.0) --> 0.0
sin()そしてtan()、典型的には、所与の記号ゼロ入力に対して同じ符号ゼロ結果を返します。これは、意味になりmy_sin()一致している必要がありsin()、それらの入力のために。
my_sind( 0.0) alike sin( 0.0) --> 0.0
my_sind(-0.0) alike sin(-0.0) --> -0.0
質問です:全体の数は、何のためにnon_zero_n/結果は、これまで返すことがなければならない-0.0ためmy_sind(180*non_zero_n)、my_cosd(180*n + 180)、my_tand(180*non_zero_n)?
コードを書くのは簡単なので、それをf(-0.0)生成して実行するだけ-0.0です。他の(ゼロ以外の)に対して他の f(x)リターンを行う理由があるかどうか、そのサインを保証することの重要性について簡単に疑問に思います。-0.0x
注:これは、なぜ0.0vs -0.0が発生するかという問題ではありません。これが理由でcos(machine_pi/4)戻りません0.0。これは、0.0またはの生成を制御する方法の問題でもありません-0.0。私はそれをデザインの問題と考えています。
sind(180), sind(-180), sind(360), sind(-360),...ますか?