我正在尝试制作BMI应用程序。当我运行应用程序时,BMI值以数字形式显示,我不明白。我尝试过浮动和双重类型,但结果相同。
例如: 高度(m):2 重量(Kg):100 BMI显示为: 2.0E-4 而不是25
影响这一点的代码部分是:
String editText1= height_field.getText().toString();
String editText2= weight_field.getText().toString();
try { // Parse string to int
double height = Double.parseDouble(editText1);
double weight = Double.parseDouble(editText2);
double bmi_result = (weight/(height*height));
String bmi_text = Double.toString(bmi_result);
display.setText(bmi_text);
System.out.println("OnClick: computeButton is clicked");
}
catch(NumberFormatException nfe) {
alert.show(); // Show error alert
答案 0 :(得分:2)
要回答原始问题,您应该使用java.text.DecimalFormat,例如:
DecimalFormat formatter = new DecimalFormat("##.##");
display.setText(formatter.format(bmi_result));
将强制结果采用两位数后跟两位小数的格式,上面链接中的表格显示了如何生成该结果。
然而,由于2.0E-4是0.0002,我认为Jon Skeet的评论是正确的:你的数学操作错误,因为你打印的价值只是一小部分25:)
我建议您在实际操作之前使用Log.v()
打印出数学运算,这样您就可以看到weight
和height
的实际值是什么,I非常怀疑他们是否正确地设置了你在问题中所描述的内容。