我想在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));
第二种方法可能比第一种方法执行得慢,而且更难阅读。