使用带有小数值的EditText来执行数学运算

时间:2012-06-01 16:52:40

标签: java android

清一色 我有一个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);

提前致谢!

2 个答案:

答案 0 :(得分:1)

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

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

然后根据需要执行操作!

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

 answerTextView.setText("" + x);

答案 1 :(得分:0)

从您的代码中删除条件

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);