gpt4 book ai didi

java - 货币的问题格式化 EditText

转载 作者:行者123 更新时间:2023-11-29 22:04:12 27 4
gpt4 key购买 nike

所有 - 我已经为此苦苦挣扎了一段时间,并查看了有关此类事情的所有其他问题,但我就是想不通:我有一个 edttext 字段需要针对货币进行格式化。我已经尝试了与此相关的所有其他问题中的代码,但无论我尝试什么,它都不起作用。这是我的代码:

EditText text = (EditText)findViewById(R.id.edit_bill);  

text.setRawInputType(Configuration.KEYBOARD_12KEY);

text.addTextChangedListener(new TextWatcher(){
EditText text = (EditText)findViewById(R.id.edit_bill);
DecimalFormat dec = new DecimalFormat("0.00");
public void afterTextChanged(Editable arg0) {
}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
if(!s.toString().matches("^\\$(\\d{1,3}(\\,\\d{3})*|(\\d+))(\\.\\d{2})?$"))
{
String userInput= ""+s.toString().replaceAll("[^\\d]", "");
if (userInput.length() > 0) {
Float in=Float.parseFloat(userInput);
float percen = in/100;
text.setText("$"+dec.format(percen));
text.setSelection(text.getText().length());
}
}
}
});

此代码位于 onClick 方法中。这有什么不同吗(例如,只有当用户单击按钮时,文本才会被格式化)?提前致谢!

最佳答案

我以前用这种方法来格式化钱。

static public String customFormat(String pattern, double s ) {
DecimalFormat myFormatter = new DecimalFormat(pattern);
String stringFormatOutput = myFormatter.format(s);
return stringFormatOutput;
}

可以这样使用:

String strPrice = customFormat("$###,##0.00", 300.2568);
mTxt.setText(strPrice);

只需将“300.2568”更改为您的价格即可。这可能同样适用于 float 而不是 double 。

关于java - 货币的问题格式化 EditText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11199645/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com