未处理异常:FormatException: Invalid double



我遇到了一个错误,这是:

E/flutter ( 6195): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: FormatException: Invalid double
E/flutter ( 6195): "41.16568"
E/flutter ( 6195): #0      double.parse (dart:core-patch/double_patch.dart:111:28)
E/flutter ( 6195): #1      _GuessTheLocationState.build.respon.<anonymous closure> (package:geoguess/main.dart:1175:34)
E/flutter ( 6195): #2      State.setState (package:flutter/src/widgets/framework.dart:1121:30)
E/flutter ( 6195): #3      _GuessTheLocationState.build.respon (package:geoguess/main.dart:1174:11)
E/flutter ( 6195): <asynchronous suspension>

我不知道为什么它不工作。代码:

//sort 5 is String that is filled with random double. Example : "3.141"
//lattDouble is double
lattDouble = double.parse(sort5);

您要转换的字符串中有引号。这导致double.parse()失效。在转换之前,必须去掉这些引号。

var text = '"41.16568"';
text = text.replaceAll('"', '');
var number = double.parse(text);

如果你知道你的字符串将永远是这种格式,你可以选择删除字符串的第一个和最后一个字符,如在注释中讨论的:

var text = '"41.16568"';
text = text.substring(1, text.length-1);
var number = double.parse(text);

最新更新