【问题标题】:How to parse number with points and commas如何用点和逗号解析数字
【发布时间】:2020-05-05 14:59:29
【问题描述】:

我收到一个类似的字符串;

1.234.567,89

我想要1234567.89

逗号是十进制分隔符。点是千位,百万位分隔符

我想把它当作一个数字。

我尝试替换,但只适用于第一个“.”。和 parseFloat。 我也尝试了一些在这里找到的正则表达式,但对我不起作用

我想要这个;

    var numberAsString= '1.234.567,89';
    //Step to clean string and conver to a number to compare (numberAsString => numberCleaned)
    if (numberCleaned> 1000000) {alert("greater than 1 million");}

有什么想法吗? (对不起,如果它是一个新手问题,但我在几个小时内没有找到任何解决方案......)

【问题讨论】:

标签: javascript jquery web decimal precision


【解决方案1】:

您可以将replaceg 一起使用

const val = '1.234.567,89'.replace(/\./gi, '').replace(/,/, '.');
console.log(val)
console.log(typeof parseFloat(val))

【讨论】:

  • 完美运行!!我选择你作为解决方案!谢谢!
【解决方案2】:

这应该适用于当前场景。 首先删除点,然后用点替换逗号。

let number = "1.234.567,89";

function parseNum(num){
    return num.replace(/\./g, '').replace(",", ".")
}


console.log(parseNum(number));

【讨论】:

  • Number.parseFloat('1.234.567,89'.split('.').join('').replace(',','.')) 但你的更好:D
  • @Argee 显然有很多方法可以实现它,但更好的解决方案将易于理解和重新实现。
  • 也试试这个解决方案,效果很好,很适合获得更多想法!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-06
  • 2020-06-03
  • 1970-01-01
  • 1970-01-01
  • 2012-10-10
相关资源
最近更新 更多