这里有人可以帮助我了解如何确定浮点限制何时会导致计算错误。例如下面的代码。
CalculateTotalTax = function (TaxRate, TaxFreePrice) {
return ((parseFloat(TaxFreePrice) / 100) * parseFloat(TaxRate)).toFixed(4);
};
我一直无法输入任何两个导致此方法结果不正确的值。如果我删除 toFixed(4) 我实际上可以看到计算开始失去准确性的地方(小数点后第 6 位左右)。尽管如此,我对浮点数的理解是,即使是很小的数字有时也无法表示或被我误解,并且可以始终准确表示 4 个小数位(例如)。
MSDN解释花车为这样的...
这意味着它们不能准确表示任何不是二进制分数的数量(形式为 k / (2 ^ n),其中 k 和 n 是整数)
现在我假设这适用于所有浮点数(包括 javascript 中使用的浮点数)。
从根本上说,我的问题归结为这个。如何确定任何特定方法是否容易受到浮点运算中的错误的影响,这些错误将以什么精度出现以及产生这些错误需要哪些输入?
希望我问的是有道理的。