Java Math Sqrt给出了NaN

Abd*_*ecH -1 java math android

我在网站上搜索,我没有发现这样的问题我的问题是在我的Android应用程序中,当我这样做:

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);
Run Code Online (Sandbox Code Playgroud)

我得到一个NaN值计算有什么问题?

sqrt = 3 ^ 2 - 4*2*1

sqrt = 9 - 8

sqrt = 1

那么sqrt根应该是1

dry*_*hip 7

这里的问题3^2不是.

相反,它是3 XOR 2.

  11 //3
 ^10 //2
 ----
  01 //1
Run Code Online (Sandbox Code Playgroud)

因此结果是负数(1-8 = -7),并且其中的sqrt是NaN.

所以,你应该做3*3(int)Math.pow(3,2)