如何从小数点后只有零的字符串生成浮点数
Posted
技术标签:
【中文标题】如何从小数点后只有零的字符串生成浮点数【英文标题】: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
我不是说截断而是不显示。
【参考方案1】:
除非你实际上有一个小数点后的值,否则浮点数的值将是 69。我不明白你为什么需要这个,如果你真的想打印浮点数,那么你需要将其转换为字符串,在这种情况下,如果您希望它们显示为这样,您可以添加两个零。
【讨论】:
这不是答案,而是评论。我问的原因是因为我很好奇,而不是因为任何现实世界的应用程序。 在某种程度上,这就是答案。就数学运算而言,69、69.00 或 69.000000 没有区别;它们都解析相同,因此没有理由使用没有意义的额外小数来表示实际值。这就像将一个整数设置为 0000000000069 而不仅仅是使用 69。只有在尝试直观地显示它时才需要使用那些额外的零,但在这种情况下,您显示的值不再是一个数字,而是一个字符串遵循不同的规则。 @KevinBeal:这是一个答案,IMO。它回答了你的问题。好的,在某些语言中,存在保留小数的十进制类型,即在 C# 中,69.00m 将存储为 6900*10^-2,并保留零。这不会发生在浮点数中。 69.00 存储为 1,078125 * 2^6。您在屏幕上看到的十进制零的数量是显示功能的结果。以上是关于如何从小数点后只有零的字符串生成浮点数的主要内容,如果未能解决你的问题,请参考以下文章