首页 > 解决方案 > 如何将带逗号的字符串转换为数字?

问题描述

我在自定义字段中有一些坐标:

45.4924038,9.2040718

我正在将它们加载到这样的地图中:

var mylatLg = "<?php echo get_post_meta($id, 'usp-custom-90', true); ?>";
var mylatLg = mylatLg.split(',');

console.log(mylatLg[0]);
console.log(mylatLg[1]);

var lat = parseInt(mylatLg[0]);
var lng = parseInt(mylatLg[1]);

第一个 console.log 给出:

45.4924001
9.206260499999985

第二个 control.log 说:

45
9

如果我按照以下内容加载标记,它会给我一个错误的位置(因为它是 45,9)

  var marker = new google.maps.Marker({
      map: map,
      position: {lat: parseInt(mylatLg[0]), lng: parseInt(mylatLg[1])},

如果我按照以下内容加载标记

 var marker = new google.maps.Marker({
      map: map,
      position: {lat: mylatLg[0], lng: mylatLg[1]},

它给

InvalidValueError: setPosition: not a LatLng or LatLngLiteral: in property lat: not a number

如何45.4924038,9.2040718像在自定义字段中一样运行?

标签: javascriptgoogle-maps

解决方案


而是尝试使用+一元运算符,它有点像parseFloat()

var lat = +mylatLg[0];
var lng = +mylatLg[1];

console.log(+"45.4924001");
console.log(+"9.206260499999985");


推荐阅读