簡體   English   中英

在Android中使用EditText將價格格式化為0.00格式

[英]Format Price in 0.00 format in android using edittext

我試圖掩蓋價格值,使其始終為0.00格式。 這是我的代碼

float temp = 0;

DecimalFormat mDecimalFormat = new DecimalFormat("###.00");

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

    if(s.toString()!=null)
    {

        mMasEditText.removeTextChangedListener(this);
        temp = Float.parseFloat(s.toString());
        mMasEditText.setText(""+mDecimalFormat.format(addNumber(temp)));
        mMasEditText.setSelection(start+1);
        mMasEditText.addTextChangedListener(this);

    }
}

public float addNumber(float numTemp){
    float result=0.00f;
    result = numTemp + result;
    return result;
}

但是,當我按十進制時,我希望光標再跳一步。 但是我無法獲取點回調。 另外,當我按下“后退”按鈕以刪除數字時,我得到了超出范圍的異常的索引。 誰能告訴我如何在onTextChanged偵聽器之前獲取后退按鈕和點按鈕回調?

使用String.format

  String.format("$%.2f", result);

要么

   Strint text = String.format("$%.2f", addNumber(temp));
   mMasEditText.setText(text)

推薦的格式化貨幣和價格的方法:

    Locale loc = Locale.getDefault();
    NumberFormat nf = NumberFormat.getCurrencyInstance(loc);
    nf.setCurrency(Currency.getInstance(loc));
    nf.setMaximumFractionDigits(2);
    nf.setMinimumFractionDigits(2);

    System.out.println(nf.format(23.5634));
    System.out.println(nf.format(0.5));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM