首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NumberFormatException on DecimalFormat浮点

NumberFormatException on DecimalFormat浮点
EN

Stack Overflow用户
提问于 2015-03-21 16:43:51
回答 3查看 1.1K关注 0票数 1

经过多次尝试,我成功地为浮点数创建了一个模式,我成功地通过返回ActivityResult并在相应的字段中设置它来完成它。现在,我对这个不接受浮动模式的TextWatcher有一个问题,有人能帮我吗?

这是TextWather

代码语言:javascript
复制
   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)
    {
    }
}

这是浮子图案

代码语言:javascript
复制
DecimalFormat dec = new DecimalFormat("###,##0.00", DecimalFormatSymbols.getInstance(Locale.ITALIAN));
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-22 02:17:00

感谢大家!我用这种方法解决了我的问题!

代码语言:javascript
复制
    private void decimalFormatWithSymbol() {
    dec = new DecimalFormat("##0.00", DecimalFormatSymbols.getInstance(Locale.ITALIAN));
    dfs = new DecimalFormatSymbols();
    dfs.setDecimalSeparator('.');
    dec.setDecimalFormatSymbols(dfs);
    }
票数 1
EN

Stack Overflow用户

发布于 2015-03-22 02:19:50

如果要向float提供一些十进制数,请将其转换为double

代码语言:javascript
复制
float f = 90;
DecimalFormat decimal2 = new DecimalFormat("#.##"); // gives 2 numbers after '.'
double dec = Double.valueOf(decimal2.format(f));

上面的代码将给出输出:

代码语言:javascript
复制
90.00
票数 0
EN

Stack Overflow用户

发布于 2022-05-16 14:15:18

这主要是由于区域设置问题,只需将语言环境定义为英语,您的问题就会得到解决。

代码语言:javascript
复制
 public double convertTwoDecimalPointAmount(double amount) {
        DecimalFormat df = new DecimalFormat("0.00", DecimalFormatSymbols.getInstance(Locale.ENGLISH));
        return Double.parseDouble(df.format(amount));
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29185254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档