【问题标题】:Convert string (EditText input) to Long in android在android中将字符串(EditText输入)转换为Long
【发布时间】:2012-12-07 09:09:52
【问题描述】:

Android 2.3.3

程序:计算器

我有一个 EditText 接受一个字符串(例如:100+1.20+45+...

当我尝试使用 Long.parseLong(1.20)1.20 解析为 long 时, 我收到以下错误。

12-07 14:28:32.902: E/AndroidRuntime(771): FATAL EXCEPTION: main
12-07 14:28:32.902: E/AndroidRuntime(771): java.lang.NumberFormatException: 1.20
12-07 14:28:32.902: E/AndroidRuntime(771):  at java.lang.Long.parse(Long.java:353)
12-07 14:28:32.902: E/AndroidRuntime(771):  at java.lang.Long.parseLong(Long.java:344)
12-07 14:28:32.902: E/AndroidRuntime(771):  at java.lang.Long.parseLong(Long.java:311)

我也试过Long.valueOf(),但是当我在某处读到时,Long.valueOf() 返回一个Long 对象,而Long.parseLong() 返回long 值。所以,我希望我想做的事情是正确的。

我阅读了有关此问题的所有可能问题,但无法解决。谁能帮帮我。

代码以备不时之需...

long result=0;
String expression = editText1.getText().toString();
String[] strArrayExpression2 = expression.split("\\+");


for(int i=0; i<strArrayExpression2.length;i++)
{
  result += Long.parseLong(strArrayExpression2[i]);
}

回答 ::: 根据需求使用 Float.parseFloat() 或 Double.parseDouble()。

【问题讨论】:

  • 1.20 不是长,见Math.round或类似的东西
  • 你能把代码发给我们吗?
  • 问题是我必须在输入中添加所有数字。例如,100+1.20+45 应该给我 146.20,而 round 只会给我 146,这不是正确的值。
  • 然后使用处理浮点数的DoubleFloat
  • 哎呀!!!我差点忘了有 Float 之类的东西。会试一试的。

标签: android numbers


【解决方案1】:

使用这个:

String str = edtText.getEditableText.toString();

Float l = Float.parseFloat(str)

【讨论】:

    【解决方案2】:

    尝试使用double 而不是long

    String strInput = edittext.getText().toString();
    double d = Double.parseDouble(strInput );
    

    // 编辑

    double result=0;
    String expression = editText1.getText().toString();
    String[] strArrayExpression2 = expression.split("\\+");
    
    
    for(int i=0; i<strArrayExpression2.length;i++)
    {
      result += Double.parseDouble(strArrayExpression2[i]);
    }
    

    【讨论】:

    • 如何将100+1.20+45+... sting 转换为任意数字?
    【解决方案3】:

    我认为这可能是您的设备语言环境的问题。在一些国家“。”和 ',' 的意思不同。例如,在德国,英文书写数字 1.20 将是​​ 1,20。相同的值,不同的符号。

    【讨论】:

      猜你喜欢
      • 2016-04-06
      • 1970-01-01
      • 2021-01-03
      • 2020-12-02
      • 2019-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-15
      相关资源
      最近更新 更多