【问题标题】:Take EditText with decimals value for preforming mathematics使用带有小数值的 EditText 进行数学运算
【发布时间】:2012-06-01 16:52:39
【问题描述】:

所有- 我有一个 EditText 字段,用户在其中输入货币值(例如“120.45”)。我需要采用该值并将其用于方程式。问题是,小数点被忽略,所以不是将 120.45 乘以 2,而是将 12,045 乘以 2。有没有办法让等式将此值视为“120.45”。 这是我的 XML:

<EditText android:id="@+id/edit_bill"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"               
    android:layout_toRightOf="@id/view_dollar_sign" 
    android:layout_alignBaseline="@id/view_dollar_sign" 
    android:padding="5dp"
    android:singleLine="true"
    android:hint="@string/edit_bill"
    android:digits="0123456789."
    android:maxLength="6" 
    android:gravity="right"
    android:layout_alignBottom="@id/view_dollar_sign"
     />

这是我的代码:

EditText text = (EditText)findViewById(R.id.edit_bill);             
    String value = text.getText().toString();       
    if(!value.contains("."))
        value = "."+value;
    float bill = Float.parseFloat(value);

提前致谢!

【问题讨论】:

  • “小数点被忽略”是怎么回事?您是否尝试将其解析为整数?您的 EditText 上是否设置了特殊的 inputType?为您的 EditText 发布 XML 并说明您是如何检索该值的。
  • 参考之前的帖子,stackoverflow.com/questions/4854360/…

标签: java android


【解决方案1】:

您可以先将字符串解析为浮点数或双精度数,例如

    x = Double.parseDouble(editTextName.getText().toString());

然后根据需要执行操作!

之后,您可以将其更改回输出 TextView,如下所示:

 answerTextView.setText("" + x);

【讨论】:

    【解决方案2】:

    从您的代码中删除 if 条件

    EditText text = (EditText)findViewById(R.id.edit_bill);             
        String value = text.getText().toString();       
        // if(!value.contains("."))   <---REMOVE THESE LINES
           //  value = "."+value;    <---REMOVE THESE LINES
        float bill = Float.parseFloat(value);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多