これがばかげた初心者の問題であるならば、私を許してください、しかし、私は本当にそれを理解しません。
私は次のように宣言されたメンバー変数を持っています:
public Double Value;
3.14159265をValueに割り当て、その正弦を計算しようとすると、次のようになります。
system.out.println(Value.toString()); //outputs 3.14159265
Value = Math.sin(Value);
system.out.println(Value.toString()); //outputs NaN
実際、これは私が試したすべての値で発生します-たとえ0でも!Math.sin()は、引数の値に関係なく、結果として常にNaNを生成するようです。
ドキュメントによると:
引数がNaNまたは無限大の場合、結果はNaNになります。
しかし、私の議論は明らかにNaNや無限大ではありません!
一体何が起こっているのですか?
アップデート
私は地球上で最も愚かなプログラマーであることがわかりました。私のプロジェクトでは、もちろんコード全体が上記の例よりもはるかに複雑です。これは一種の式パーサーおよびエバリュエーターであり、定義された数学関数については、switch句を使用して、呼び出す関数を決定します。sqrt関数が負のパラメーターで実行される原因となった場合のbreakステートメントを忘れました。
私が言ったように-地球上で最も愚かなプログラマー...
最高の私見なので、一番上の答えを受け入れました。時間を無駄にしてすみません-.-