我是使用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。
答案 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);