如何从EditText中删除'$',修改浮点数,然后放回$

时间:2014-07-28 05:19:09

标签: java android

所以我试图从EditText中获取浮点值,向其中添加一些数字,然后更改之前的数字。我没有遇到任何问题 - 以下代码有效。我想要做的就是让'$'始终显示在浮动的前面。我把$放在那里没什么问题,因为我只是将setText设为setText(“$”+ iprice3)。当我从EditText中获取值并且存在'$'时,会出现问题 - 它会导致应用程序崩溃。我无法弄清楚怎么去串,摆脱它,然后回到漂浮。有什么想法吗?

if(checkbox3.isChecked())
{
    EditText price3 = (EditText) findViewById(R.id.payment3);
    float floatprice3 = Float.valueOf(price3.getText().toString());
    float newprice3 = everyOnePaying + floatprice3;
    String iprice3 = Float.toString(newprice3);
    price3.setText(iprice3);
    checkbox3.setChecked(false);
}

在旁注 - 我想知道是否有人知道如何格式化浮点数,以便它只显示2位小数。

6 个答案:

答案 0 :(得分:1)

你可以这样做

String fltprice = price3.getText().toString().replace("$","");

float floatprice3 = Float.valueOf(fltprice);
float newprice3 = everyOnePaying + floatprice3;
//String iprice3 = Float.toString(newprice3);
//price3.setText("$" + iprice3);

如果您希望只显示,则可以显示为

price3.setText("$" + String.format(%.2f,newprice3));

答案 1 :(得分:1)

你可以写:

float floatprice3 = Float.valueOf(price3.getText().toString().substring(1));

并使用DecimalFormat对2位小数位置进行限制

DecimalFormat df = new DecimalFormat("#,###,##0.00");
System.out.println(df.format(364565.14));

答案 2 :(得分:0)

String str1 = editText1.getText().toString();
str1 = str1.replace("$","");

String str2 = editText2.getText().toString();
str2 = str2.replace("$","");

Float f1 = Float.parseFloat (str1);
Float f2 = Float.parseFloat (str2);

Float sum = f1 + f2;


 String result = String.format("$%.2f", sum);

答案 3 :(得分:0)

像这样一步一步地进行

String fromEditText = price3.getText().toString();// receiving string from edittext
String youWant=fromEditText.subString(1);    //removing firstcharacter
float yourfloatValue=Float.valueOf(youWant); // converting into float

现在使用此浮动值

答案 4 :(得分:0)

这样做

EditText et = (EditText) findViewById(your view id);
String s = et.getText().toString().replace("$", "");
Float f = Float.valueOf(s);

这应该从editText字段中删除$。

在您的旁注中,您可以执行此操作以将浮动格式设置为限制为2位十进制数:

f = 22.3986;
f = Math.round(f*100)/100.0;

希望它能回答你的问题。

答案 5 :(得分:0)

您在正确的轨道上只需附加美元符号并将其格式化

<强>样品:

String.format("$%.2f", Float.valueOf(price3.getText()));; //set the float with dollar sign 2 decimal places

现在要获取文本并将其解析为浮动,您需要替换美元符号并解析它。

float value = Float.valueOf(price3.getText().replace("$", "")); //replace the float's dollaar sign and transform it to float