Math.floor数学计算

时间:2016-02-15 19:22:15

标签: android math android-studio floor

我做了一个计算,取小数,但现在我想这样做,它显示一个向下舍入的数字。 我发现我可以使用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);
}

1 个答案:

答案 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}}。

改进的方法:
您可以遵循以下准则来改进代码:

  1. 您在多个地方使用同一行TextView作为检查条件。如果使用该值初始化变量,则最好。像

    这样的东西

    etBarfles.getText().toString()

  2. 您的条件String etBarFilesText = etBarfles.getText().toString();可以etBarfles.getText().toString().equals("")方式写成,如下所示

    Android

  3. 您的字符串应在!TextUtils.isEmpty(etBarFilesText)中定义。因此,如果您的错误msgd在strings.xml中被命名为error_string,则您的strings.xml消息将如下所示。

    Toast

  4. 你的行

    Toast.makeText(getActivity(), getString(R.string.error_string), Toast.LENGTH_SHORT).show(); 如果使用不同的变量,而不是用一个大的单句写出所有内容,本来可以更简单,更易读。