我试过使用double.parse,double.tryparse,也试过将它转换为int,但它一直给出错误“type”int“不是type”String“的子类型,我搜索了一些网站,但所有的解决方案都显示使用parse。
final locData = Map<String, dynamic>.from(local);
var dubLat = locData['lat'];
var lat = double.tryParse(dubLat);
我试过将var更改为double nit,但仍然给予相同的错误。
2条答案
按热度按时间nwlls2ji1#
.tryParse接受字符串,甚至此示例的parse方法也接受字符串。但您的数据实际上是整数,因此错误类型int不是类型string的子类型。您应考虑将它们存储为int或在分析它们之前使用.toString方法。
变量dubLat =位置数据[“纬度”];//这里dublat实际上不是一个字符串,而是一个整数,你的map有一个dynamic作为第二个参数,它可以接受所有的数据类型,这个特殊的数据类型是int,而不是.parse期望的string。
变量lat =双精度.tryParse(双精度.到字符串());
bqf10yzr2#
您遇到此错误是因为您尝试传递int而不是double。tryParse需要字符串值,这就是为什么会出现此错误'type 'int'不是类型'String'的子类型
我通过这个“double.tryParse(dubLat.toString())”来解决;“