【问题标题】:Not able to Change String (innerHtml) to Number with Javascript无法使用 Javascript 将字符串(innerHtml)更改为数字
【发布时间】:2021-06-05 18:03:30
【问题描述】:

我无法使用 javascript 将字符串从 innerHTML 更改为数字,元素的 innerHTML 就像 1.2.34,我尝试过 ParseFloat、ParseInt 和 Number 函数,它们工作但仅适用于字符串(innerHTML)是 1.23 的形式意味着只有一个小数点,但在我的情况下,我有超过 1、2 个小数并且无法在 js 中更改它们。请帮我解决这个问题。

【问题讨论】:

  • 这是一个 semver(版本号)吗?如果是这样,有JavaScript libraries专门用来处理这些的。
  • 其实,这只是一个输入,你可以说,我是从页面上的一个元素中获取的,它不是版本号
  • 是你可以添加时间的目的吗?你能给出一个你如何使用这个innerHTML的用例吗?
  • 我正在使用这个 innerHTML 来计算不同时间的平均值,它使用像 1.23 这样的数字,但我有像 1.2.34 这样的 innerHTML
  • 所以你的格式是HH.MM.SS(小时、分钟、秒)?是否要将其转换为十进制小时数(例如 1.30.36 = 1.51 小时)?

标签: javascript numbers innerhtml parseint parsefloat


【解决方案1】:

parseFloat, parseInt 只能应用于具有正确十进制格式的文本或数字。 ex : 100,1.24,100.24,100.254 但是您尝试使用不是有效的十进制格式的 1.2.4,当您尝试使用 int 或 float 解析这种无效格式时,JS 将认为 parseInt 或 parseFloat 的参数无效.

所以我正在考虑将innerHtml作为hh.mm.ss粘贴代码sn-p如下

var time = '1.24.3';   // input string from innerHtml
var timearray = time.split('.'); // split it with .

// You can multiply hours to seconds or minutes
var totalminutes = (+timearray[0]) * 60 + (+timearray[1]);

//then you can add the every time and divide by n
-->You logic goes here

【讨论】:

  • 好的,谢谢,但是有什么办法可以让我的结果更改号变成这样的字符串?
  • 您能否具体解释一下您的输入和预期输出是什么?
  • 我正在编写一个秒表计时器,所以我得到的 innerHTML 是 1.2.4 的形式,我想用它来获取平均值,为此我需要将其转换为数字首先
  • @Nimish 因为你的输入对我来说不是很清楚,我已经用代码 sn-p 修改了上面的答案部分,希望它会对你有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-28
  • 1970-01-01
相关资源
最近更新 更多