/ / JavaScriptの数学は完全に間違った結果をもたらす - javascript、数学、浮動小数点、浮動小数点精度

JavaScriptの数学は、JavaScript、数学、浮動小数点、浮動小数点精度

私はある領域のグラフの下の面積を計算できるプログラムを作るという課題を持っています。 私の機能は f(x)=3+(tan(x))^2 私はこれをjavascriptに変えたので、次のようになります:

var y = 3 + Math.pow(Math.tan((x)*(180/Math.PI)), 2)

これにより、特定のx値で正しい結果が得られます。しかし、時には、例えば。 〜で x = 3.4、私は16のような変わった数字を出す 3 または 4.

私はそれが浮動小数点の動作の問題によって引き起こされることがあることを読んだが、それは大きな違いを与えるべきではない?私はそれを理解していません。:(

私はforループを使って x 値と、値を格納する配列。

回答:

回答№1は1

x*180/π 角度を変換する xラジアンで与えられ、度数で表されます。 JavaScriptの三角関数は引数がラジアンであると期待していますので、角度がラジアンであれば変換は一切必要なく、度数であれば他の方法で変換する必要がありますつまり、 x*π/180.