【问题标题】:Convert 0 to 0.00 as number将 0 转换为 0.00 作为数字
【发布时间】:2017-10-25 18:05:56
【问题描述】:

我正在尝试将数字转换为以下格式

0 -> 0.00
1 -> 1.00
1.1 -> 1.10
4.0  -> 4.00

但问题是它只作为字符串返回

value = 0;
var s = Math.floor(value / 60) + "." + (value % 60 ? value % 60 : '00');
console.log(s+s); //just checking if its number

但它返回为 string ,我尝试了 parseInt ,但它只返回 0 。我试过 ParseFloat and fixedTo(2) ,它只作为字符串返回。

【问题讨论】:

  • 如果你格式化一个数字来显示它变成一个字符串。没有其他办法。
  • @Rajesh : 它返回字符串
  • 00.00 是代表相同数值的文字。根据定义,您无法获得 Number literal;只有一个字符串。不过,尚不清楚您究竟想在这里做什么。
  • 您可以使用Number 函数将字符串转换为数字,即 Number('1.10') 返回 1.1 作为数字,但您无法保持所需的格式。
  • 为什么需要这种“数字”

标签: javascript


【解决方案1】:

正如在 cmets 中看到的那样,在 JavaScript 中没有办法做到这一点。格式化数字总是返回一个 Srting。不过,为此你有一些可能性

Number(1).toFixed(2) // "1.00" - setting the number of digits after the decimal point
Number(1).toPrecision(2) // "1.0" - setting the number of digits

这些是用来打印出来的,所以通常情况下,它是字符串还是数字都没有关系。

如果你想把它当作数字使用,你只需按照@Max 的建议,使用函数Number(str) 或简写+str 进行转换。

【讨论】:

  • 它不是用来打印的,它是用来传递给另一个函数的
  • 其他功能与格式化数字有什么关系,请问?在我看来,如果一个函数需要一个数字,那么无论它是否被格式化都是一样的。但也许我缺乏一点想象力……
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-28
  • 2014-07-20
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多