2017-03-16 90 views
1

我对JavaScript的math.js库有关于函数简化的问题。该函数返回0为非常小的数字。 例如:为什么math.simplify(“1e-10”).math.js的toString()返回0?

math.simplify("1e-10").toString(); // returns 0 
math.simplify("sin(1.5)*1e-10").toString(); // returns 0 

这对小数字的计算并不好。 你知道如何解决这个问题吗?

+0

我不是JavaScript专家,但该方法能理解科学语法吗?它能得到'1e-10'是为了'0.0000000001'而不是'1 * e-10'([e的定义](https://en.wikipedia.org/wiki/E_(mathematical_constant )))?它是否适用于像“1e-1”,“1e + 10”等数字? – Thomas

+0

谢谢,但math.simplify(“0.0000000001”)。toString();给出仍然0,只math.simplify(“1e-7”)。toString();返回“1/10000000” – Sten

+0

在这种情况下,我想到的唯一的其他选项可能是精确的问题。从文档看来,有一个可配置的“epsilon”,它可能已经从默认值“1e-14”改变了,并且因此库可能决定1e-10基本上等于0. – Thomas

回答