【问题标题】:How can i return a float from an a string of numbers?如何从一串数字中返回浮点数?
【发布时间】:2017-11-03 01:46:42
【问题描述】:

当我在控制台中执行 svg.getAttribute("d") 时,我有一串数字:

“ - 0.05990783410138251,0.13594470046082952,-0.06912442396313362,0.14976958525345618,-0.07603686635944701,0.15668202764976957,-0.08755760368663595,0.16589861751152069,-0.09677419354838718,0.16820276497695852,-0.10599078341013829,0.16820276497695852,-0.12211981566820279,0.16820276497695852,-0.13594470046082957,0.16820276497695852,-0.14055299539170513,0.16820276497695852, - 0.14516129032258068,0.16589861751152069,-0.1474654377880184"

我希望将其转换为浮点数,所以我做了 parseFloat(svg.getAttribute("d")) 但我得到的只是返回的第一个数字:

-0.05990783410138251

我怎样才能得到所有的数字?

谢谢

【问题讨论】:

  • 您不能将一串数字s(复数)转换为“a float”(单数),除非您选择其中一个数字并忽略其余数字。如果您想要的结果是一组数字,请edit 提问。

标签: javascript int parsefloat


【解决方案1】:

使用String.prototype.split()Array.prototype.map() 可以获得一个浮点值数组,如下所示:

const values = '-0.05990783410138251,0.13594470046082952,-0.06912442396313362,0.14976958525345618,-0.07603686635944701,0.15668202764976957,-0.08755760368663595,0.16589861751152069,-0.09677419354838718,0.16820276497695852,-0.10599078341013829,0.16820276497695852,-0.12211981566820279,0.16820276497695852,-0.13594470046082957,0.16820276497695852,-0.14055299539170513,0.16820276497695852,-0.14516129032258068,0.16589861751152069,-0.1474654377880184';

const floats = values.split(',').map(parseFloat);

console.log(floats);

【讨论】:

  • .map(parseFloat) 应该是安全的,不是吗? (与 .map(parseInt) 不同,它不会做正确的事情。)
【解决方案2】:

您可以先使用split()函数将字符串用','分割,然后再应用parseFloat()

【讨论】:

    【解决方案3】:

    您需要先将其转换为字符串数组,然后才能单独解析每个字符串。像这样的:

    var str = svg.getAttribute("d");
    var strNums = str.split(',');
    var nums = strNums.map(function (num) {
        return parseFloat(num);
    });
    

    【讨论】:

      【解决方案4】:
      const numArray = thatStringOfNumbers.split(',').map((num) => parseFloat(num))
      

      【讨论】:

      • 总是对你的答案给出一些解释。否则将被视为低质量帖子,可能会被删除。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-08
      • 2016-06-21
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 2015-05-07
      相关资源
      最近更新 更多