Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON字符串化后无法使用parseFloat_Javascript_Json_Stringify - Fatal编程技术网

Javascript JSON字符串化后无法使用parseFloat

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。字符串化值,您的代码就

我有一行代码,上面写着--

当我发出警报(纬度)--它会给我输出“33.23232342”。但当我发出警报时,我需要这个数字

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))