四舍五入到 2 位小数并通过 TextView

Round to 2 decimals and pass through TextView

想制作通用的除法应用程序只是为了测试一些东西,因为我对所有东西都很陌生。我得到了最终数字,我只是不知道如何或在何处应用 NumberFormat 或 DecimalFormat 或如何正确 Math.Round 所以我只能得到 2 个小数位。我会想将任何数字吐回文本视图中。

final Button button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            thing1 = (EditText) findViewById(R.id.thing1);
            if (TextUtils.isEmpty(thing1.getText().toString())) {
                n1 = 0;}
            else {
                n1 = Integer.parseInt(thing1.getText().toString());
            }

            thing2 = (EditText) findViewById(R.id.thing2);
            if (TextUtils.isEmpty(thing2.getText().toString())) {
                n2 = 0;}
            else {
                n2 = Integer.parseInt(thing2.getText().toString());
            }

            if (n2 !=0){

             total = (n1 / n2);}

            final double total =  ((double)n1/(double)n2);

            final TextView result= (TextView) findViewById(R.id.result);

            result.setText(Double.toString(total));

        }

    });


}

尝试使用 String.format() 方法,它会创建一个字符串,并将该数字舍入(向上或向下舍入)到小数点后两位。

String foo = String.format("%.2f", total);
result.setText(foo);

你可以使用String.format()

result.setText(String.format("%.2f", total));

使用Math.round()

Math.round(total*100.0)/100.0

像这样:

result.setText(Double.toString(Math.round(total*100.0)/100.0));

尝试使用此代码:

DecimalFormat df = new DecimalFormat();
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setGroupingSeparator(',');
dfs.setDecimalSeparator('.');
df.setDecimalFormatSymbols(dfs);
df.setMinimumFractionDigits(2);
df.setMaximumFractionDigits(2);
result.setText(df.format(n1 / n2));

希望一切顺利。谢谢

你应该试试这个

result.setText(String.format( "%.2f", total) );