Javascript 计算器Web应用程序-处理小数
我知道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 我研究了
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'));