使用JavaScript添加十进制数

时间:2013-02-15 06:23:19

标签: javascript validation add floating-point-precision

我讨厌增加关于这个主题的一连串问题,但我不知道还有什么地方可以找到一个简明的答案,所以这里有:

我在 jsFiddle

上有此表单

我通过结合今天在网上找到的几个不同的例子来达到这一点,以获得我想要的整体效果。

在研究时我发现很多帖子都在谈论添加花车的危害。我相信我理解为什么这通常是关于精度的坏主意的概念。然而,当两个数字的总和以小数位数给出时,它似乎只是一个问题。 (如6或更多)

在我的代码中我只会添加有2位小数的数字而且我会使用   var n=val.toFixed(2);以确保结果只有2位小数。当测试一切似乎工作得很好。

我的问题有两个方面:

  1. 这是否是一种可以接受的方式来达到我想要的结果并保持精确度因为我只需要2位小数

  2. 您能否指出一个示例,它显示了一种更好或更可接受的方式来做我想要的事情?

  3. 得到应有的尊重(我非常尊重这个社区)我知道“客户端验证不会取代服务器端验证”我只需要支持Chrome < / strong>所以如果我的代码中的任何内容在任何其他浏览器中都没有按预期工作,那就不是问题了。

1 个答案:

答案 0 :(得分:1)

总的来说,是的。浮点数通常可以提供15位有效数字的精度,因此只保留2位数几乎总是有效。

但是,根据我的个人经验,我发现总是在整数中工作更加可靠 - 甚至可以使用字符串操作来删除小数点并跟踪多少幂十分之一,我有效地乘以原始数字,所以我可以在最后再划分。