8

我正在尝试将字符串转换为浮点数,但我无法成功。

这是我的代码

float f1 = Float.parseFloat("1,9698");

它给出的错误是

Invalid float  "1,9698";

为什么要这样做?这是一个有效的浮点数

4

8 回答 8

14

当您应该使用句号时,您使用的是逗号

float f1 = Float.parseFloat("1.9698");

那应该行得通。

于 2013-06-25T07:13:45.143 回答
5

您添加了逗号而不是“。”

这样做。

float f1 = Float.parseFloat("1.9698");
于 2013-06-25T07:16:01.577 回答
4
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");
于 2013-06-25T07:17:23.430 回答
1

这是类型转换:当我们在任何变量中使用不同类型的数据时需要类型转换。

    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;
于 2013-06-27T12:43:15.083 回答
1

使用了这个浮点 f1 = Float.parseFloat("1.9698"); 或将 ,(comma) 替换为 .(dot) 是无效形式的浮点数

于 2015-05-29T09:00:35.057 回答
1

在科特林:

stringValue.toFloatOrNull() ?: 0F

这将给NumberFormatException免费转换。

更精确:

private fun getFloat(stringValue: String) = stringValue.toFloatOrNull() ?: 0F
于 2020-03-29T06:56:14.873 回答
1
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();
}
于 2016-11-23T05:44:02.783 回答
1

我建议你使用这样的东西:

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());
    }
}
于 2022-02-03T09:01:24.980 回答