2014-02-14 36 views
0

我有一个问题,当我将一个数字舍入到2位小数时,parseFloat()函数从数字中移除.00。我曾尝试圆浮动到2位小数javascript

var num = parseFloat(Math.round(19 * 100)/100).toFixed(2); 

The return: num="19.00" 

The return i need: num = 19.00 

我知道19 = 19.00,但我使用的是总是需要两位小数.00

该函数返回正确的值的字符串的服务。当我解析它浮动.00被删除。

+0

我相信数字作为字符串将工作,因为在这种情况下isNaN(num)应该是false,这意味着num是一个数字。 – Ankur

+1

只是不要使用parseFloat。 – Butt4cak3

+0

当输入的数字是19时,该函数将加上.00。返回是“19.00”(字符串)。我需要返回19.00作为数字。我使用parseFloat将“19.00”转换为19.00,但parseFloat删除.00 – Joris

回答

0

您不能将19.00设置为float,只能作为字符串使用,因为数字总是会删除尾随零。

也许你可以告诉我们更多的代码来获得一个想法,那么你需要这些尾随零?

0

数字确实无法保存有关其表示的信息。它们只是一个数值。

当您使用window.alertconsole.log或类似名称显示一个数字时,您并不是在查看某个数字,而是在一个字符串处。这些显示功能在显示数字前将数字转换为字符串。 Number.toFixed也将数字转换为字符串,不同之处在于它将它们四舍五入到小数点后两位,所以您最终会得到另一个相同数字的表示。

我想说的是,要显示一个数字,你无法绕过它将其转换为字符串。无论您是明确执行还是显示功能都可以为您做到。当您将号码发送到您正在使用的服务时,您可能也会发送一个字符串(JSON,XML等等,一旦您发送它们就始终是字符串)。如果您需要计算数字的值,请使用它,然后将其转换。无论如何,如果你最终想要那些0,你最终必须这样做。