如何转换为double

时间:2018-06-08 10:33:42

标签: dart flutter

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

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

我尝试使用它来转换为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);

2 个答案:

答案 0 :(得分:4)

中删除引号
 var long2 = double.parse('$group1');

 var long2 = double.parse($group1);

您也可以使用

var long2 = double.tryParse($group1);

或者也接受没有分数的数字

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

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

答案 1 :(得分:2)

为什么不在double.parse(group1)中使用group1