【问题标题】:How to convert to double如何转换成双倍
【发布时间】:2018-06-08 10:33:41
【问题描述】:

我用正则表达式验证了提取gps纬度和经度的功能,但目前它是一个字符串,并且map_view只接受双精度

上一个问题: how to display a regex result in flutter

我试图用它来转换成双,但它不起作用

    RegExp regExp = new RegExp(            //Here is the regex fonction to extract long, lat
       r"maps:google\.com\/maps\?q=(-?[0-9]+.[0-9]+),(-?[0-9]+.[0-9]+)",
      );
      var match = regExp.firstMatch(input);
      group1 = match.group(1);   //match groupe seems to be an int
      group2 = match.group(2);

      var long2 = double.parse('$group1');
      assert(long2 is double);
      var lat2 = double.parse('$group2');
      assert(lat2 is double);

【问题讨论】:

  • “不起作用”到底是什么意思?
  • 它与正则表达式无关。标记已删除。

标签: dart flutter


【解决方案1】:

去掉引号

 var long2 = double.parse('$group1');

 var long2 = double.parse($group1);

你也可以使用

var long2 = double.tryParse($group1);

或者也接受不带分数的数字

var long2 = num.tryParse($group1)?.toDouble();

$group1 中的字符串无法转换为有效的双精度时不会出现异常。

【讨论】:

  • 我修改了但没有结果,group1 没问题并且正在显示,但是当我尝试使用 var long2 = double.tryParse($group1); 进行转换时我无法显示(返回 null)
  • $group1 的值是多少?只需在tryParse() 行之前添加print('group1 ${$group1}');。并且请尽量避免在变量名中使用$
  • I/flutter (12954): group1 14.215465
  • 也许你也应该使用num.tryParse($group1)?.toDouble() 来覆盖整数值。
  • 小部件文本没有正确看到 double 我使用 sharedpreference 包保存 Double 并在我的小部件上使用它。现在可以了 :) 感谢您的帮助和快速回复
【解决方案2】:

为什么不像 double.parse(group1) 那样只使用 group1

【讨论】:

  • 很好:D 这很令人困惑,因为在链接的问题中,他使用$group1 作为变量名。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-09
  • 1970-01-01
  • 2013-05-20
  • 2015-09-16
相关资源
最近更新 更多