1

次のような mGTotal の値を取得しています: 179.257856

しかし今は、179.25 のように 10 進数の後に 2 桁だけを表示したいだけです。

    @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);

}
}
4

2 に答える 2

7

使用するDecimalformat

DecimalFormat df = new DecimalFormat("#.##");
System.out.println(df.format("179.257856"));// which gives result as 179.25
于 2013-02-20T05:39:24.483 に答える
3

あなたはあなたの答えに非常に近いです。以下の行がうまくいくと思います:

 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);

}
于 2013-02-20T05:46:05.703 に答える