【问题标题】:convert string to float in android在android中将字符串转换为浮点数
【发布时间】:2013-06-21 21:18:02
【问题描述】:

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

这是我的代码

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

它给出的错误是

Invalid float  "1,9698";

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

【问题讨论】:

  • 去掉',' !!我想你想添加'.'
  • 我应该用“。”替换它吗? ?
  • @ayilmaz 是的,没错
  • @ayilmaz 是的。替换它。我也添加了解决方案作为答案。
  • 您的区域设置未正确设置为允许在浮点数中使用逗号。您需要使用允许这样做的语言环境。

标签: java android


【解决方案1】:

当你应该使用句号时,你使用了逗号

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

应该可以的。

【讨论】:

    【解决方案2】:

    您添加了逗号而不是 '.'

    这样做。

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

    【讨论】:

      【解决方案3】:
      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");
      

      【讨论】:

        【解决方案4】:

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

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

        有时我们还需要类型转换: 当我们使用相同的数据但类型不同时需要类型转换。 只有你将 Big 转换为 Small Datatype。

            i = (int)f;
            i = (int)d;
            i = (int)l;
        
            f = (float)d;
            f = (float)l;
        
            l = (long)d;
        

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:
            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();
            }
            

            【讨论】:

            • 一些 cmets 会很好。提问者在问为什么他的代码不起作用。也很高兴回答这个问题。
            • 因为逗号(,)没有转成float所以我们使用decimalformat
            【解决方案7】:

            在科特林中:

            stringValue.toFloatOrNull() ?: 0F
            

            这将使 NumberFormatException 免费转换。

            更准确:

            private fun getFloat(stringValue: String) = stringValue.toFloatOrNull() ?: 0F
            

            【讨论】:

              猜你喜欢
              • 2011-11-25
              • 1970-01-01
              • 2014-09-25
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多