Javascript 为什么math.js的math.simplify(";1e-10";).toString()返回0?

Javascript 为什么math.js的math.simplify(";1e-10";).toString()返回0?,javascript,math.js,Javascript,Math.js,我对JavaScript库中的函数simplify有疑问。对于非常小的数字,函数返回0。 e、 g: 对于小数值的计算来说,这是不太好的。 你知道如何解决这个问题吗?这是math.js中的一个bug。我在这里打开了一个问题: 这是math.js中的一个bug。我在这里打开了一个问题: 我不是JavaScript专家,但该方法理解科学语法吗?它能得到1e-10是0.0000000001而不是1*e-10()吗?它对“1e-1”、“1e+10”等数字有效吗?谢谢,但是数学。简化(“0.0000000

我对JavaScript库中的函数simplify有疑问。对于非常小的数字,函数返回
0
。 e、 g:

对于小数值的计算来说,这是不太好的。
你知道如何解决这个问题吗?

这是math.js中的一个bug。我在这里打开了一个问题:


这是math.js中的一个bug。我在这里打开了一个问题:


我不是JavaScript专家,但该方法理解科学语法吗?它能得到
1e-10
0.0000000001
而不是
1*e-10
()吗?它对“1e-1”、“1e+10”等数字有效吗?谢谢,但是数学。简化(“0.0000000001”)。toString();仍然为0,仅数学.simplify(“1e-7”).toString();返回“1/10000000”,在这种情况下,我想到的唯一其他选项可能是精度问题。从文档来看,似乎有一个可配置的
epsilon
,它可能已经从默认值
1e-14
更改,因此库可能会决定1e-10基本上等于0。这只是内存问题吗?当您从1e-7转到1e-8时,会发生转换。可能由于信息存储在8位中,JavaScript引擎正在舍入。尝试更改epsilon:1e-32和precision:164,但仍然没有效果。我不是舒尔关于8位的问题,因为在javascript中,我假设52位代表值,11位代表指数,1位代表符号为默认值。我不是javascript专家,但该方法理解科学语法吗?它能得到
1e-10
0.0000000001
而不是
1*e-10
()吗?它对“1e-1”、“1e+10”等数字有效吗?谢谢,但是数学。简化(“0.0000000001”)。toString();仍然为0,仅数学.simplify(“1e-7”).toString();返回“1/10000000”,在这种情况下,我想到的唯一其他选项可能是精度问题。从文档来看,似乎有一个可配置的
epsilon
,它可能已经从默认值
1e-14
更改,因此库可能会决定1e-10基本上等于0。这只是内存问题吗?当您从1e-7转到1e-8时,会发生转换。可能由于信息存储在8位中,JavaScript引擎正在舍入。尝试更改epsilon:1e-32和precision:164,但仍然没有效果。我不是舒尔关于8位的问题,因为在javascript中,我假设52位代表值11位代表指数1位代表符号作为默认值
math.simplify("1e-10").toString(); // returns 0
math.simplify("sin(1.5)*1e-10").toString(); // returns 0