You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Dart中使用double.parse()转换坐标时遭遇类型错误问题

解决Google Geo API坐标转double的类型错误问题

嘿,我太懂你遇到的这个坑了!其实问题的核心很简单——你误以为locationData['bounds']['northeast']是字符串类型,所以想用double.parse()来转换,但实际上它本身已经是double类型了!

为什么会报错?

double.parse()方法的参数要求必须是String类型,而你传入的是一个已经是double的数值,这就直接触发了类型不匹配的错误。你打印时能看到正常的数值,是因为Dart会自动把double类型的值转换成字符串输出,但它的本质还是数字类型,不是字符串哦。

正确的处理方式

完全不需要用parse,直接赋值或者做个简单的类型转换就行:

// 方式1:直接赋值,Dart会自动推断类型
var neLat = locationData['bounds']['northeast'];

// 方式2:显式声明类型,代码更严谨
double neLat = locationData['bounds']['northeast'];

// 方式3:如果担心数据类型不确定,用as强转兜底
double neLat = locationData['bounds']['northeast'] as double;

验证数据类型的小技巧

要是以后再遇到类似的类型疑惑,可以先打印变量的运行时类型确认:

print(locationData['bounds']['northeast'].runtimeType);

执行后控制台会输出double,这样就能彻底明确它的真实类型啦!

内容的提问来源于stack exchange,提问作者Rinktacular

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:22:24