[英]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.