如何将带逗号的字符串转换为数字



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

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:不是LatLng或LatLngLiteral:在属性lat:不是数字

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

请尝试使用+一元运算符,它的工作原理与parseFloat():类似

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

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

您需要使用parseFloat而不是parseInt。这将把字符串解析为浮点值。或者只尝试使用Number进行强制转换,例如Number('9.206260499999985')将生成浮点值9.20626099999985。

相关内容

  • 没有找到相关文章

最新更新