【问题标题】:Rounding up decimal in EditText在 EditText 中四舍五入
【发布时间】:2012-08-30 20:40:59
【问题描述】:

我想弄清楚如何将总数四舍五入到小数点后两位。总数是一个 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));
}

【问题讨论】:

    标签: android eclipse math decimal rounding


    【解决方案1】:

    试试这个。

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

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

    【讨论】:

    • 您更新的答案表明了什么?它只是我答案的副本吗?或与我的回答有什么不同?
    • 谢谢,我确实想通了。我也会检查你的。我使用了代码'fat.setText(round.format(total));'
    【解决方案2】:

    format() 应该为你做,

    DecimalFormat round = new DecimalFormat ("###.##");
    String formatted = round.format(double_value);
    fat.setText(formatted);
    

    【讨论】:

    • 你只是放代码,没有解释。这就是我的回答和亲爱的朋友你的回答之间的区别。
    • 总是发布相关代码和相关解释。正如你向其他人建议的那样。
    • 好吧,您更新的答案没有显示任何解释。而只是我答案中两行的副本。
    • 那这是什么?当您将任何数字转换为 N 个十进制数字时,您需要将该值存储在任何变量中,或者像上面提到的那样直接显示。
    • 我确实弄明白了,我会试试你的。
    【解决方案3】:

    你可以使用String.format("%.2f", d),你的double会被四舍五入

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      • 1970-01-01
      • 2012-08-04
      • 2023-03-26
      相关资源
      最近更新 更多