2016-04-27 11 views
-1

を与える:Javaの数学のSqrtは、私は、ウェブサイト上で検索し、この 私の問題は、私はそう私のアンドロイドアプリケーションにということであるように、私は問題を見つけられませんでしたNaNの

String ET6 = et6.getText().toString(); 
String ET7 = et7.getText().toString(); 
String ET8 = et8.getText().toString(); 
int IET6 = Integer.parseInt(ET6); 
int IET7 = Integer.parseInt(ET7); 
int IET8 = Integer.parseInt(ET8); 
double sqrt1 = (IET7^2) - 4 *(IET6 * IET8); 
sqrt1 = Math.sqrt(sqrt1); 

私はNaN値を取得 計算に何が問題なのですか?

SQRT = 3^2から4 * 2 * 1

SQRT = 9から8

SQRT = 1

そしてSQRTルートはここでの問題は、1

+5

'3^2'、'^'doesn'tは本当にここに電源操作を行う、私はそれがIET7 * IET7に変更' XOR' – SomeJavaGuy

答えて

7

なければなりません3^2ではありません。

代わりに、その結​​果が負の数(1-8 = -7)であり、そしてそれのSQRTがNaN 3 XOR 2

11 //3 
^10 //2 
---- 
    01 //1 

あります。

だから、あなたは3*3または(int)Math.pow(3,2)

+0

をit's –

2

を行う必要がありますどちらかの引数がNaNまたはゼロより小さい場合、Math.sqrt(引数)の結果はNaNです。ソースjavaドキュメントlink

1

あなたはXORを使用しています。あなたがMathクラスからPOW機能を使用する必要があります。

double sqrt1 = Math.pow(IET7, 2) - 4 *(IET6 * IET8); 
関連する問題