如何在十进制后仅显示两位数

时间:2013-02-02 05:49:46

标签: java android

想要在小数点后只显示两位数字,我已经尝试但仍然是在小数点后得到多位数字

itemamount = Double.parseDouble(text_cost_code.getText().toString());
txt_total.setText(new DecimalFormat("##.##").format(itemamount));

edit_qty_code.addTextChangedListener(new TextWatcher() {

public void onTextChanged(CharSequence s, int start, int before,
        int count) {
// TODO Auto-generated method stub
if (!edit_qty_code.getText().toString().equals("")
|| !edit_qty_code.getText().toString().equals("")) {
itemquantity = Double.parseDouble(edit_qty_code.getText().toString());
itemamount = Double.parseDouble(text_cost_code.getText().toString());
txt_total.setText(new DecimalFormat("##.##").format (itemquantity * itemamount));
} else { txt_total.setText("0.00");}}

4 个答案:

答案 0 :(得分:3)

我不确定你的代码中你想要做什么,但是

String.format("%.2f", value);

应该有用。

答案 1 :(得分:2)

Rakesh使用此链接:

Show only two digit after decimal

  i=348842.
  double i2=i/60000;
  DecimalFormat dtime = new DecimalFormat("#.##"); 
  i2= Double.valueOf(dtime.format(time));
  v.setText(String.valueOf(i2));

答案 2 :(得分:0)

试试这个,它可能对你有帮助。

float localresult =Float.parseFloat(itemquantity*itemamount);
BigDecimal bd = new BigDecimal(Double.toString(localresult));
bd = bd.setScale(2,BigDecimal.ROUND_HALF_UP);
bd.doubleValue();

然后将其设置为textview,textview.setText(“”+ bd.doubleValue();)

答案 3 :(得分:0)

好吧,如果十进制数字的值是动态的,如果不是,那么这是解决方案。 (此解决方案适用于未知动态值或已知值)

 try {
        Double rounded= new BigDecimal(Double.parseDouble(getdecimalvalue())).setScale(2, RoundingMode.HALF_UP).doubleValue();
        textviewid.setText (String.valueOf(rounded) );

    }
    catch (Exception e){
        textviewid.setText (getdecimalvalue());
    }

对于最多2个小数,我将setScale第一个参数设为2。 假设getdecimalvalue()返回一个字符串。

对于动态假设,如果该值为“ 12.5”,则将抛出异常,并且在捕获中直接显示该值,因为该值仅在点后最多1个小数位。