按替换方式转换

时间:2015-12-07 23:17:49

标签: java android

我试图为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"

2 个答案:

答案 0 :(得分:0)

您的代码中有Double.parseDouble("base"),删除双引号

答案 1 :(得分:0)

我发现算法没有成功,因为while循环仅在double值达到低点时停止。所以我用Math.floor()修正了它。