在Android SDK中对十进制数字进行指数化



我想在Android SDK中用2对十进制数字进行幂运算。目前,我只能用整数来做,为此我使用以下方法:

a = Integer.parseInt(etA.getText().toString());
b = Integer.parseInt(etB.getText().toString());
res = a*a + b*b;
res = (int) Math.pow(res, 0.5);
tvSol.setText(String.valueOf(res));

如您所见,用户将一个输入设置为etA,将一个设置为etB。最终解决方案显示在tvSol上。我需要用十进制数而不仅仅是整数。

我相信以下内容可以让您接受整数和十进制。

double a = Double.parseDouble(etA.getText().toString());
double b = Double.parseDouble(etB.getText().toString());
double res = Math.sqrt(a*a + b*b);
tvSol.setText(String.valueOf(res));

如果您真的想使用Math.pow,您可以执行以下操作:

double a = Double.parseDouble(etA.getText().toString());
double b = Double.parseDouble(etB.getText().toString());
double res = Math.pow(Math.pow(a, 2.0) + Math.pow(b, 2.0), 0.5);
tvSol.setText(String.valueOf(res));

第二种方法可能比第一种方法执行得慢,而且更难阅读。

最新更新