经过多次尝试,我成功地为浮点数创建了一个模式,我成功地通过返回ActivityResult并在相应的字段中设置它来完成它。现在,我对这个不接受浮动模式的TextWatcher有一个问题,有人能帮我吗?
这是TextWather
private abstract class TextChangedListener implements TextWatcher
{
public abstract void numberEntered(Float number);
@Override
public void afterTextChanged(Editable s)
{
String text = s.toString();
try
{
Float parsedFloat = Float.valueOf(text);
numberEntered(parsedFloat);
} catch (NumberFormatException e)
{
Log.w(getPackageName(), "Non si puo' parsare '" + text + "' col numero", e);
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after)
{
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
}
}这是浮子图案
DecimalFormat dec = new DecimalFormat("###,##0.00", DecimalFormatSymbols.getInstance(Locale.ITALIAN));发布于 2015-03-22 02:17:00
感谢大家!我用这种方法解决了我的问题!
private void decimalFormatWithSymbol() {
dec = new DecimalFormat("##0.00", DecimalFormatSymbols.getInstance(Locale.ITALIAN));
dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator('.');
dec.setDecimalFormatSymbols(dfs);
}发布于 2015-03-22 02:19:50
如果要向float提供一些十进制数,请将其转换为double。
float f = 90;
DecimalFormat decimal2 = new DecimalFormat("#.##"); // gives 2 numbers after '.'
double dec = Double.valueOf(decimal2.format(f));上面的代码将给出输出:
90.00发布于 2022-05-16 14:15:18
这主要是由于区域设置问题,只需将语言环境定义为英语,您的问题就会得到解决。
public double convertTwoDecimalPointAmount(double amount) {
DecimalFormat df = new DecimalFormat("0.00", DecimalFormatSymbols.getInstance(Locale.ENGLISH));
return Double.parseDouble(df.format(amount));
}https://stackoverflow.com/questions/29185254
复制相似问题