代码之家  ›  专栏  ›  技术社区  ›  brk

无法将字符串转换为浮点

  •  0
  • brk  · 技术社区  · 7 年前

    我有一个简单的字符串数组,但我试图将其转换为十进制数数组,如[5.22,8.22,其余的数字],但它只返回整数数组。

    let k = ["5:17", "8:22", "3:34", "5:23",
             "7:12", "7:24", "6:46", "4:45",
             "4:40", "7:58", "11:51", "9:13",
             "5:50", "5:52", "5:49", "8:57",
             "11:29", "3:07", "5:59", "3:31"];
    
    let arrOfNum = k.reduce(function(acc, crr) {
      acc.push(parseFloat(crr))
      return acc;
    }, [])
    
    console.log(arrOfNum)
    2 回复  |  直到 7 年前
        1
  •  4
  •   Andrew    7 年前

    改变 acc.push(parseFloat(crr)) acc.push(parseFloat(crr.replace(":",".")))

    JavaScript不将冒号识别为句点

        2
  •  1
  •   Ele    7 年前

    浮点数不遵循此格式 integer:decimal ,

    it follows `integer.decimal`
                       ^
                       |
                       +--- the dot is the decimal separator in JS.
    

    另一方面,你不需要 reduce 为此,请使用函数 map 相反。

    Number . 如果你想的话,你可以读一点 here

    let k = ["5:17", "8:22", "3:34", "5:23","7:12", "7:24", "6:46", "4:45","4:40", "7:58", "11:51", "9:13","5:50", "5:52", "5:49", "8:57","11:29", "3:07", "5:59", "3:31"],
        arrOfNum = k.map((crr) => Number(crr.replace(':', '.')));
    
    console.log(arrOfNum);
    .as-console-wrapper { max-height: 100% !important; top: 0; }