1

我试图弄清楚如何将总数四舍五入到小数点后两位。总数是一个 EditText。我不能把它缩小到小数点后两位。它有什么问题?谢谢你的帮助。

public void macro() {
    caloriesTotal = Double.parseDouble(calories.getText().toString());
    total = (caloriesTotal * .20)/9;
    DecimalFormat round = new DecimalFormat ("###.##");
    round.format(total);
    carbsTotal = (caloriesTotal * .40)/4;
    proteinTotal = (caloriesTotal * .40)/4;       
    fat.setText(Double.toString(total));
    carbs.setText(Double.toString(carbsTotal));
    protein.setText(Double.toString(proteinTotal));
}
4

3 回答 3

8

试试这个。

fat.setText(Double.valueOf(round.format(total)));

当您将任何数字转换为 N 个十进制数字时,您需要将该值存储在任何变量中或直接显示,如我上面提到的。

于 2012-09-06T04:55:10.437 回答
3

简直format()应该为你做,

DecimalFormat round = new DecimalFormat ("###.##");
String formatted = round.format(double_value);
fat.setText(formatted);
于 2012-09-06T05:00:55.813 回答
0

你可以使用String.format("%.2f", d),你的双精度数将被四舍五入

于 2012-09-06T06:04:27.277 回答