我做了一个计算,取小数,但现在我想这样做,它显示一个向下舍入的数字。 我发现我可以使用math.floor,但我无法在代码中获得它。 我取消了小数,但无法将其缩小。
代码就像这样(进行数学运算的部分):
public void onClick(View view) {
if (etBarfles.getText().toString().equals("")) {
Toast.makeText(getActivity(), "Vul zowel bar in fles, inhoud fles als liters per " +
"minuut in!", Toast.LENGTH_SHORT).show();
} else {
if (etInhoudfles.getText().toString().equals("")) {
Toast.makeText(getActivity(), "Vul zowel bar in fles, inhoud fles als liters per " +
"minuut in!", Toast.LENGTH_SHORT).show();
} else {
if (etLitersperminuut.getText().toString().equals("")) {
Toast.makeText(getActivity(), "Vul zowel bar in fles, inhoud fles als liters " +
"per minuut in!", Toast.LENGTH_SHORT).show();
} else {
}
tvResult.setText(nodecimals((((Float.parseFloat(etBarfles.getText().toString()) *
(Float.parseFloat(etInhoudfles.getText().toString())) / (Float.parseFloat
(etLitersperminuut.getText().toString()))) / 60))));
}
}
}
private String nodecimals(float val) {
return String.format("%.0f", val);
}
答案 0 :(得分:2)
尝试以下
tvResult.setText(String.valueOf((int) Math.floor(((Float.parseFloat(etBarfles.getText()
.toString()) *
(Float.parseFloat(etInhoudfles.getText().toString())) / (Float.parseFloat
(etLitersperminuut.getText().toString()))) / 60))));
(int) Math.floor()
会将该值转换为整数最低值,然后String.valueOf()
会将int
转换为String
,以便您可以将其设置为{ {1}}。
改进的方法:
您可以遵循以下准则来改进代码:
您在多个地方使用同一行TextView
作为检查条件。如果使用该值初始化变量,则最好。像
etBarfles.getText().toString()
您的条件String etBarFilesText = etBarfles.getText().toString();
可以etBarfles.getText().toString().equals("")
方式写成,如下所示
Android
您的字符串应在!TextUtils.isEmpty(etBarFilesText)
中定义。因此,如果您的错误msgd在strings.xml
中被命名为error_string
,则您的strings.xml
消息将如下所示。
Toast
你的行
Toast.makeText(getActivity(), getString(R.string.error_string), Toast.LENGTH_SHORT).show();
如果使用不同的变量,而不是用一个大的单句写出所有内容,本来可以更简单,更易读。