【问题标题】:Convert string to numbers [duplicate]将字符串转换为数字[重复]
【发布时间】:2019-10-27 00:53:15
【问题描述】:

我有多个字符串,如下所示: 550 e, 1,550, 1.550,00 e 我需要将其转换为数字,以便比较它的值。

我使用split()join() 删除了货币部分 (e),但如何从中获取数字?

【问题讨论】:

  • 所以,如果你通过连接返回它,你会得到一个 550 的字符串。 1.550,00 等,对吗?
  • 如果, 是小数点,则将其更改为.,同时将其他.s 替换为空字符串,然后传递给Number
  • var number = parseInt("1550 e") 出:1550
  • @Fallenreaper,正确

标签: javascript


【解决方案1】:

尝试使用类似的东西:

var integer = parseInt(yourString, 10);

十进制数:

 var decimal= parseFloat(yourString);

【讨论】:

    【解决方案2】:

    使用Regular Expression 捕获数字,后跟可选的小数。

    var regex = /\d+.?\d+/g;
    
    const arrofStrings = ["550 e", "1,550 e", "1.550,00 e"];
    
    const numbers = arrofStrings.map((str) => {
        str = str.replace(',', '');
        return Number(str.match(regex));
    });
    
    console.log(numbers);

    【讨论】:

    • 差不多,注意1,550和1.550,00是一样的,应该都是,比如1550,00
    • 运行此代码库时,1.550,00 应返回 1550,而不是 1.55,因此您需要考虑这一点
    • 我解决了这个问题:arrofStrings.map( item => parseInt(item.split(" ")[0].replace(".","").split(",")[0]) ),虽然这仅解决整数,而不是浮点数。
    猜你喜欢
    • 2016-09-06
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 2019-02-21
    • 2017-12-15
    相关资源
    最近更新 更多