时间:2011-07-16 21:37:56

标签: android double int

我是在Android学习的新人,我忘记了很多Java程序。这里我遇到了一个问题,我今天在Eclipse中执行了该程序。

public void cvOnClick (View cvView) {
    EditText KilogramsInput = (EditText) findViewById(R.id.Kilograms);
    EditText HeightInput = (EditText) findViewById(R.id.Height);
    TextView BmiOutput = (TextView) findViewById(R.id.Bmi);
    DecimalFormat BmiFormat = new DecimalFormat(".#####");
    Double Heightdouble = Math.pow(Integer.parseInt(HeightInput.getText().toString()), 2);          

    String outcome = BmiFormat.format(Integer.parseInt(KilogramsInput.getText().toString())/Heightdouble);
    BmiOutput.setText(outcome);
}

作为这个程序的最初目的,应该是平方的高度数。在Eclipse中执行没有错误。但是当我将数据(十进制)放在AVD中时,它会显示:the application has stopped unexpectedly

请让我知道此刻我该怎么办?

感谢您的帮助!布拉德

2 个答案:

答案 0 :(得分:6)

您使用的是Integer.parseInt(),但是当您输入double而不是int时会感到困惑。使用Double.parseDouble()代替Integer.parseInt(),它应该有效。

答案 1 :(得分:3)

如果在千克或高度编辑文本中输入非整数值,您将获得异常,因为您试图将它们解析为整数。使用Double.parseDouble()代替Integer.parseInt()