我正在尝试将字符串转换为浮点数,但我无法成功。
这是我的代码
float f1 = Float.parseFloat("1,9698");
它给出的错误是
Invalid float "1,9698";
为什么要这样做?这是一个有效的浮点数
当您应该使用句号时,您使用的是逗号
float f1 = Float.parseFloat("1.9698");
那应该行得通。
您添加了逗号而不是“。”
这样做。
float f1 = Float.parseFloat("1.9698");
Hope this will help you..
Float number;
String str=e1.getText().toString();
number = Float.parseFloat(str);
Or In one line-
float float_no = Float.parseFloat("3.1427");
这是类型转换:当我们在任何变量中使用不同类型的数据时需要类型转换。
String str = "123.22";
int i = Integer.parseInt(str);
float f = Float.parseFloat(str);
long l = Long.parseLong(str);
double d= Double.parseDouble(str);
str = String.valueOf(d);
str = String.valueOf(i);
str = String.valueOf(f);
str = String.valueOf(l);
有时我们需要类型转换:当我们使用相同的数据但类型不同时需要类型转换。只有您将大数据类型转换为小数据类型。
i = (int)f;
i = (int)d;
i = (int)l;
f = (float)d;
f = (float)l;
l = (long)d;
使用了这个浮点 f1 = Float.parseFloat("1.9698"); 或将 ,(comma) 替换为 .(dot) 是无效形式的浮点数
在科特林:
stringValue.toFloatOrNull() ?: 0F
这将给NumberFormatException免费转换。
更精确:
private fun getFloat(stringValue: String) = stringValue.toFloatOrNull() ?: 0F
Float total = Float.valueOf(0);
try
{
total = Float.valueOf(str);
}
catch(NumberFormatException ex)
{
DecimalFormat df = new DecimalFormat();
Number n = null;
try
{
n = df.parse(str);
}
catch(ParseException ex2){ }
if(n != null)
total = n.floatValue();
}
我建议你使用这样的东西:
String text = ...;
text = text.replace(",", ".");
if(text.length() > 0) {
try {
float f = Float.parseFloat(text);
Log.i(TAG, "Found float " + String.format(Locale.getDefault(), "%f", f));
} catch (Exception e) {
Log.i(TAG, "Exception " + e.toString());
}
}