D3从字符串解析数字

时间:2018-04-09 21:09:42

标签: javascript d3.js

我是使用D3.js的新手,我在将字符串数据转换为数字时遇到问题。我正在使用一个名为"比利时"由这些数字组成:54,345或1,234,567。

我尝试使用

将它们转换为数字
data.forEach(function(d) {
    d.Belgium = +d.Belgium; 
}

但结果是NaN。我也尝试过使用

d.Belgium = parseInt(d.Belgium);

但它会在第一个逗号之前取数字并删除其余的数字。例如,如果一个数字是1,234,562,则使用parseInt()我得到1.如果数字是982,381,则它仍为982。

2 个答案:

答案 0 :(得分:1)

使用,删除所有string.replace(searchvalue, newvalue)

parseInt(str.replace(/,/g, ""))

所以例如:

console.log(parseInt("1,234,562".replace(/,/g, "")))

如下所述,如果您的号码可能包含小数,请使用parseFloat代替parseInt,例如3.141,592保留浮点数。

答案 1 :(得分:1)

我采取了一些不同的方法。我使用.split(",")将值拆分为每个,的数组,然后使用.join("")将数组的每个索引与空格连接起来。使用+运算符以方便使用,但也可以parseFloat()



let stringNumber = "1,250,234.093";
let numStringNumber = +stringNumber.split(",").join("");
console.log(numStringNumber);
console.log(typeof numStringNumber);