Javascript 计算器Web应用程序-处理小数

Javascript 计算器Web应用程序-处理小数,javascript,jquery,Javascript,Jquery,我知道JavaScript在小数方面存在问题,因为计算机处理小数的方式等等。我的问题是,在计算器web应用程序的上下文中应该如何处理小数 var exampleDecimal = 1.2 + 0.64; // 1.8399999999999999 - INCORRECT 我不知道用户可以输入什么,他们可以输入: var exampleDecimal = (1.232 + 10.64) * 2 - 18.2 / 2.2; // 15.471272727272728 - CORRECT 我研究了

我知道JavaScript在小数方面存在问题,因为计算机处理小数的方式等等。我的问题是,在计算器web应用程序的上下文中应该如何处理小数

var exampleDecimal = 1.2 + 0.64; // 1.8399999999999999 - INCORRECT
我不知道用户可以输入什么,他们可以输入:

var exampleDecimal = (1.232 + 10.64) * 2 - 18.2 / 2.2; // 15.471272727272728 - CORRECT
我研究了这个主题,发现JavaScript没有一个简单的解决方案,可以在基本计算器的上下文中准确地处理小数。jQuery是吗?我在jQuery的参考网站上找不到解决方案,但我对jQuery几乎没有经验


我发现的每个JavaScript计算器教程都有1.2+0.64错误。

jQuery在这方面帮不了你,但你可以使用一个库来处理这个问题。其中一个流行的是:

此语法可能有点冗长,但您可以将其包装得更紧凑一些:

var dec = function (spec) {
  'use strict';
  if (this === undefined) { return new BigDecimal(spec); }
  return new BigDecimal(spec);
};
然后按如下方式使用:

var result = dec('1.2').add(dec('0.64'));

第二个代码段不会产生
1.839999…
,而是产生15.4712727…尝试对该值使用float。有关相关主题的更多阅读:我的意思是:myVar=parseFloat(myVar)。我认为这可能有助于解决这个问题。@Teemu--那是个错误,我编辑了我的问题。
var result = dec('1.2').add(dec('0.64'));