Java Android:计算并输出到textview
在我正在创建的一个简单的应用程序中,一切都设置得很好,我可以处理字符串没有问题,有一个关于如何根据一些用户输入变量计算输出的headscratcher,下面是按钮执行计算的地方,据我所知,所有变量都设置得很好。如果你愿意,我可以发布完整的代码 我需要“lbm”的输出。 “weight”和“bodyfat”都是EditText转换为int的,并且(希望)被计算以提供答案,然后将其传递给“lbmResult”,这是一个文本视图Java Android:计算并输出到textview,java,android,variables,Java,Android,Variables,在我正在创建的一个简单的应用程序中,一切都设置得很好,我可以处理字符串没有问题,有一个关于如何根据一些用户输入变量计算输出的headscratcher,下面是按钮执行计算的地方,据我所知,所有变量都设置得很好。如果你愿意,我可以发布完整的代码 我需要“lbm”的输出。 “weight”和“bodyfat”都是EditText转换为int的,并且(希望)被计算以提供答案,然后将其传递给“lbmResult”,这是一个文本视图 case R.id.btnCalcCalories:
case R.id.btnCalcCalories:
int weight = Integer.parseInt(weightInt);
int bodyfat = Integer.parseInt(bodyfatInt);
lbm = weight*(100 - bodyfat)/100;
lbmResult.setText(lbm);
break;
}
代码没有显示它,但
lbm
可能是int
类型。因此使用了setText(int)
重载,该重载需要资源id,但lbm
不是资源id。将其更改为:
lbmResult.setText(Integer.toString(lbm));
改为使用
setText(CharSequence)
重载。代码不显示它,但lbm
可能是int
类型。因此使用了setText(int)
重载,该重载需要资源id,但lbm
不是资源id。将其更改为:
lbmResult.setText(Integer.toString(lbm));
改为使用
setText(CharSequence)
重载。setText接受一个字符串,并向其传递一个浮点。要打印它,必须首先将lbm
转换为字符串
try
lbmResult.setText(Float.toString(lbm))
setText接受一个字符串,并向其传递一个浮点。要打印它,必须首先将lbm
转换为字符串
trylbmResult.setText(Float.toString(lbm))代码>
此外,最好使用double进行计算,并将其格式设置为小数点后2位
lbmResult.setText(lbm);
此外,最好使用double进行计算,并将其格式设置为小数点后2位
lbmResult.setText(lbm);
=>
=>
虽然您没有提到您是将lbm声明为int还是double,但我假设第一种情况并在下面查看,您的代码将是
case R.id.btnCalcCalories:
int weight = Integer.parseInt(weightEdittextValue.getText().toString());
int bodyfat = Integer.parseInt(bodyfatEdittextValue.getText().toString());
int lbm = weight*(100 - bodyfat)/100;
lbmResult.setText(String.valueOf(lbm));
break;
但是我建议您需要使用double
而不是int
来获得正确的结果,就像
case R.id.btnCalcCalories:
double weight = Integer.parseInt(weightEdittextValue.getText().toString());
double bodyfat = Integer.parseInt(bodyfatEdittextValue.getText().toString());
double lbm = weight*(100 - bodyfat)/100;
lbmResult.setText(String.valueOf(lbm));
break;
虽然您没有提到您是将lbm声明为int还是double,但我假设第一种情况并在下面查看,您的代码将是
case R.id.btnCalcCalories:
int weight = Integer.parseInt(weightEdittextValue.getText().toString());
int bodyfat = Integer.parseInt(bodyfatEdittextValue.getText().toString());
int lbm = weight*(100 - bodyfat)/100;
lbmResult.setText(String.valueOf(lbm));
break;
但是我建议您需要使用double
而不是int
来获得正确的结果,就像
case R.id.btnCalcCalories:
double weight = Integer.parseInt(weightEdittextValue.getText().toString());
double bodyfat = Integer.parseInt(bodyfatEdittextValue.getText().toString());
double lbm = weight*(100 - bodyfat)/100;
lbmResult.setText(String.valueOf(lbm));
break;
为什么是-1?我假设lbm是一个浮点,但除此之外,我的答案有什么问题?如果它是一个浮点,它不会给OP一个headscratcher,而是一个直接的编译错误。为什么是-1?我假设lbm是一个浮点,但除此之外,我的答案有什么错?如果它是一个浮点,它不会给OP一个headscratcher,而是一个直接的编译错误。这非常有效,但都是很好的答案!!谢谢大家!这一切都很完美,不过都是很好的答案!!谢谢大家!