0
は私が把握しようとして苦労していた場合に実行していない:なぜJavaコード次のコードでのステートメントが正常に実行されていない場合は理由書
double yint = -157.42;
if(copy_denominator.contains("x^"+nextBottom))yint = -1*constant/d2;
Log.d(PERIOD,"copy den: "+copy_denominator +" yint "+yint);
//the Log statement above prints out that yint = 3.0;
if(yint != -157.42)
Log.d(PERIOD,"oblique 5 "+slope+"x + "+yint);//I expect this to print to Log
if(yint == -157.42)Log.d(PERIOD,"oblique 6 "+slope+"x ");//This prints out.
を私は知りませんstatement:if(yint!= -157.42)は実行されません。 私は以前これを見たことがない、Android Studioのバグかもしれない。
アドバイスありがとうございました
あなたのコードのフォーマットは非常に悪いです。また、==と!=を使って浮動小数点の定数と比較するのは良い考えではありません。むしろ、比較の際にいくらかの誤差マージンを許容する。さらに、double型の変数 "yint"の名前を指定しないでください。また、それは "yint = 3.0;"という印字をしていますか?お役に立てれば。あなたの質問への答えを得ることを幸運。 – user643011
あなたは正しいかもしれないと思います。私はこの誤差の計算の余裕をどのように試すことができるかを見てみましょう。 @ user643011 –
はい、 "yint = 3.0" @ user643011が表示されます。私は、yint = 157.42を設定し、if(Math.abs(157.42 - yint)> 0.001)を使って修正しようとしますが、まだ実行されていません! –