我试图为Android制作转换应用,这是一个功课。我在实现算法方面遇到了问题,在调用函数时我的应用程序崩溃了。
这是我的转换类:
public class Conversion {
private Double transform(Double number, Double base) {
Double converted = (number / base) * 10 + (number % base);
return converted;
}
public String substitution(String number, String base) {
Double temp_number = Double.parseDouble(number);
Double converted_number = 0.0;
Double i = 0.0;
while (temp_number != 0) {
converted_number = converted_number * 10 + transform((temp_number % 10) * Math.pow(Double.parseDouble(base), i), Double.parseDouble(base));
temp_number = temp_number / 10;
i = i + 1;
}
return converted_number.toString();
}}
因此,例如,当我在应用程序启动时调用该函数时,它会崩溃。
public class MainActivity extends AppCompatActivity {
Conversion conver = new Conversion();
@Override
protected void onCreate(Bundle savedInstanceState) {
final Context c = this;
AlertDialog.Builder m = new AlertDialog.Builder(c);
m.setMessage(conver.substitution("10", "10"));
AlertDialog a = m.create();
a.show();
编辑:我修复了崩溃问题,现在我的函数返回" NaN"
答案 0 :(得分:0)
您的代码中有Double.parseDouble("base")
,删除双引号
答案 1 :(得分:0)
我发现算法没有成功,因为while
循环仅在double值达到低点时停止。所以我用Math.floor()
修正了它。