【问题标题】:Get EditTextValue and parse it into a decimal with only one digit for integer part获取 EditTextValue 并将其解析为整数部分只有一位的小数
【发布时间】:2014-05-09 07:25:33
【问题描述】:

当我从 EditText 获取整数并尝试将其更改为小数以便可以将其用于计算时,我遇到了问题。有人可以解释一下如何做到这一点吗?

例如。如果有人要在 EditText 中输入 120 并且我从中得到整数,那么我将如何将 120 的整数更改为 1.20 并继续计算?

谢谢!!

【问题讨论】:

    标签: android numbers android-edittext decimal


    【解决方案1】:
    int three = Integer.parse("3");
    

    我知道你可以用它来把一个字符串解析成一个整数,在 double 中可能也有一个 parse 方法!

    也检查一下: Convert a String to Double - Java

    +1 安东尼比我早 1 分钟回答哈哈

    【讨论】:

    • 我还希望用户通过添加 inputType 属性来输入小数并将其设置为 numberDecimal。并将前面的语句放在 try catch 中,因为它可能会抛出:java.lang.NumberFormatException.
    • 检查我的答案我添加了一个try catch
    • 谢谢,但现在我如何将其更改为小数以进行进一步的计算
    【解决方案2】:
    EditText myEditText = (EditText)findViewById(R.id.YOUR_EDIT_TEXT_ID);
    String numberAsString = myEditText.getText().toString();
    
    double myDecimal;
    try {
        myDecimal = Double.parseDouble(numberAsString);
        if (myDecimal >= 10)
        {
            int digits = 1 + (int)Math.floor(Math.log10(myDecimal));
            myDecimal = myDecimal / ((Math.pow((double)10, ((double)digits) - 1)));
            System.out.println(myDecimal);
        }
    } catch (NumberFormatException e) {
        //handle exeption
        e.printStackTrace();
    }
    

    【讨论】:

    • 谢谢,但现在我如何将其更改为小数以进行进一步的计算
    • 好吧,现在,变量 myDecimal 包含你的双精度数,你可以用它做任何数学计算。如果您的目标是将格式更改为 EditText,我担心没有办法做到这一点
    • 我的意思是,如果有人要在 myEditText 中输入 120,我将如何将其更改为 1.20 ?
    • 更快更好的方式。 (不确定-1)你需要自己检查一下
    • 这对我很有帮助,谢谢 :) 在这一切之前我试图将它除以 100,但这没有用,但你已经让它工作了 :) 所以谢谢 :)
    【解决方案3】:

    您需要从 EditText 中获取内容作为字符串,然后您可以从那里将其解析为整数。这样做是这样的:

     int wholeNum = Integer.parseInt(yourEditText.getText().toString());
    

    【讨论】:

      猜你喜欢
      • 2015-05-26
      • 2015-07-23
      • 2020-05-18
      • 1970-01-01
      • 2017-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      相关资源
      最近更新 更多