所以我试图从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位小数。
答案 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