Javascript JSON字符串化后无法使用parseFloat
我有一行代码,上面写着-- 当我发出警报(纬度)--它会给我输出“33.23232342”。但当我发出警报时,我需要这个数字Javascript JSON字符串化后无法使用parseFloat,javascript,json,stringify,Javascript,Json,Stringify,我有一行代码,上面写着-- 当我发出警报(纬度)--它会给我输出“33.23232342”。但当我发出警报时,我需要这个数字 var latitude = parseFloat(JSON.stringify(place.lat)); 我明白了。有人能告诉我可能是什么问题吗 谢谢JSON。stringify将原语转换为字符串,因此: JSON.stringify(5.1) 返回5个字符的字符串 "5.1" 将这样的值传递到parseFloat会导致NaN只需不JSON。字符串化值,您的代码就
var latitude = parseFloat(JSON.stringify(place.lat));
我明白了。有人能告诉我可能是什么问题吗
谢谢
JSON。stringify
将原语转换为字符串,因此:
JSON.stringify(5.1)
返回5个字符的字符串
"5.1"
将这样的值传递到parseFloat
会导致NaN
只需不JSON。字符串化值
,您的代码就可以正常工作
值得注意的是,只允许对象和数组作为JSON表示中的顶级元素,因此它不符合“JSON ify”原始数字的规范(但您的浏览器无论如何都会这样做)。问题在于place.lat是一个字符串,所以当您将其字符串化时,您会得到一个带引号的字符串 这和我们的实验结果是一样的
parseFloat(JSON.stringify("3.5"))
就是
NaN
解决方案是直接解析place.lat:parseFloat(place.lat)
如果您想解析带引号的字符串中的数字,您也可以这样做
parseFloat(str.slice(1,-1))
您的
place.lat
已经是字符串
。这样做JSON.stringify()
只是:
问题的根源在于:
JSON.stringify(place.lat)
返回“'20.0120132312'
,其中有一个前导”
。只需使用:
parseFloat(place.lat);
如果它已经是一个对象,为什么要对它进行字符串化
只需执行parseFloat(place.lat)
您必须调用:
parseFloat(JSON.parse(latitude))
place.lat的值是多少?它实际上可能是您问题的根源。这是使用的JSON{“lat”:“33.424042”,“lng”:“-111.938744”}。无论如何,您为什么要字符串化一个数字来解析它呢?它解决了问题。。谢谢
parseFloat(place.lat);
parseFloat(JSON.parse(latitude))