在Javascript中使用乘法和除法分数的最佳方法是什么?
在控制台中使用以下代码可以看到我将1/10乘以1/10时收到的错误之一:
console.log( (1/5) * (1/10));
打印0.020000000000000004而不是0.02。
我正试图在Javascript中在客户端执行一些化学平衡计算(化学计量)。数学需要一些矩阵计算,包括确定两个矩阵的零空间或内核。我能够找到一个名为sylvester.js的库用于某些矩阵数学,但仍无法找到任何用于查找内核的javascript实现。作为我实施的一部分,我需要能够可靠地倍增分数。
我考虑过四舍五入到一些精度,但对此感到不安并开始重写代码只使用整数,只是将所有东西乘以一组数字,所以我不必使用分数。这似乎仍然不是最好的方式。我该怎么办?
EDIT 我应该提一下,我的一个要求是我有清晰,可读的代码,并且在分数方面很好地理解了域。我想以这样的方式编写正在执行的操作,以至于我不仅仅是在解决浮点数学问题。我的问题不同于“浮点数学是否破碎?”因为我不是在问是否存在问题,我知道存在问题,但是我如何解决这个问题并仍然按照分数编写干净的代码。此外,当在javascript中搜索分数时,其他答案甚至都没有显示出来。
答案 0 :(得分:-3)
如果您想使用有理数的库,我似乎很自然地使用它。 Fraction.js可能是一个不错的选择。我对这个特定的库没有任何经验,但它似乎非常稳定和轻量级。此外,我已经用C ++编写了分数,所以我知道它不应该是任何重大的开销。