【问题标题】:How to produce a float from a string with only zeros after decimal place如何从小数点后只有零的字符串生成浮点数
【发布时间】:2014-07-24 21:44:41
【问题描述】:

如何从"69.00"(字符串)生成69.00(浮点数)?

我试过了:

parseFloat("69.00")            // 69
parseFloat("69.00").toFixed(2) // "69.00"

【问题讨论】:

  • errr,我觉得是正确的
  • 没有发现任何问题。 .00 无论如何都不会显示。
  • @Rahul,并不是说它被剥离了,它仍然被代表,它只是 69.00 和 69 以及 69.0000 和 69.000000000000 是同一件事。您显示多少小数点是 toFixed 的全部问题
  • JavaScript 中只有一种数字类型:IEEE-754 64 位浮点数。如果您想将小数位填充到两个零以进行显示,则只需使用 toFixed(2) 就像您已经在使用一样。
  • @KeithNicholas,stripped 我不是说截断而是不显示。

标签: javascript floating-point


【解决方案1】:

除非你实际上有一个小数点后的值,否则浮点数的值将是 69。我不明白你为什么需要这个,如果你真的想打印浮点数,那么你需要将其转换为字符串,在这种情况下,如果您希望它们显示为这样,您可以添加两个零。

【讨论】:

  • 这不是答案,而是评论。我问的原因是因为我很好奇,而不是因为任何现实世界的应用程序。
  • 在某种程度上,这就是答案。就数学运算而言,69、69.00 或 69.000000 没有区别;它们都解析相同,因此没有理由使用没有意义的额外小数来表示实际值。这就像将一个整数设置为 0000000000069 而不仅仅是使用 69。只有在尝试直观地显示它时才需要使用那些额外的零,但在这种情况下,您显示的值不再是一个数字,而是一个字符串遵循不同的规则。
  • @KevinBeal:这是一个答案,IMO。它回答了你的问题。好的,在某些语言中,存在保留小数的十进制类型,即在 C# 中,69.00m 将存储为 6900*10^-2,并保留零。这不会发生在浮点数中。 69.00 存储为 1,078125 * 2^6。您在屏幕上看到的十进制零的数量是显示功能的结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-01
  • 1970-01-01
  • 2023-01-09
  • 2023-03-05
  • 1970-01-01
  • 2012-06-04
相关资源
最近更新 更多