首页 > 解决方案 > 如何转换成双倍

问题描述

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

上一个问题: 如何在颤动中显示正则表达式结果

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

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

标签: dartflutter

解决方案


删除引号

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

 var long2 = double.parse($group1);

你也可以使用

var long2 = double.tryParse($group1);

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

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

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


推荐阅读