问题描述
- 要求只显示小数点后两位
-
得到GTotal的值,举例: 179.257856但是要求只显示小数点后两位,也就是这样: 179.25
@Override protected void onResume() { super.onResume(); if (Constants.mItem_Detail.size() == 0) { return; } Double mGTotal = Double.parseDouble(Constants.mItem_Detail.get(0).get(SingleProductActivity.KEY_TOTAL)); for (int i = 1; i < Constants.mItem_Detail.size(); i++) { mGTotal = mGTotal + Double.parseDouble(Constants.mItem_Detail.get(i).get(SingleProductActivity.KEY_TOTAL)); } mGrandTotal = String.valueOf(mGTotal); mTxtViewGrandTotal.setText(mGrandTotal); myTextVeiwGrandTotal.setText(mGrandTotal); mTotal = String.valueOf(Constants.mItem_Detail.size()); mItems.setText(mTotal); } }
解决方案
你已经完成的差不多了,我想加上下面的代码就行了。
mTxtViewGrandTotal.setText(new DecimalFormat("##.##").format(mGTotal));
完整的方法就是:
@Override
protected void onResume()
{
super.onResume();
if (Constants.mItem_Detail.size() == 0)
{
return;
}
Double mGTotal = Double.parseDouble(Constants.mItem_Detail.get(0).get(SingleProductActivity.KEY_TOTAL));
for (int i = 1; i < Constants.mItem_Detail.size(); i++)
{
mGTotal = mGTotal + Double.parseDouble(Constants.mItem_Detail.get(i).get(SingleProductActivity.KEY_TOTAL));
}
mGrandTotal = String.valueOf(mGTotal);
mTxtViewGrandTotal.setText(mGrandTotal);
myTextVeiwGrandTotal.setText(mGrandTotal);
mTxtViewGrandTotal.setText(new DecimalFormat("##.##").format(mGTotal));
mTotal = String.valueOf(Constants.mItem_Detail.size());
mItems.setText(mTotal);
}
解决方案二:
建议使用:DecimalFormat("#0.00")。因为使用“##.##”时如果你的数字刚好是“180.00”时调整的结果将没有小数位“180”,
如果你的数字是0.25时将没有前面的0,结果显示为“.25”。如果你的数字刚好是一列显示就存在格式不统一的问题,所以建议使用“#0.00”,
其中的“0”表示没默认值。
解决方案三:
用Decimalformat
DecimalFormat df = new DecimalFormat("#.##");
System.out.println(df.format("179.257856"));// which gives result as 179.25
时间: 2024-11-05 16:26:19