如何在mathjs结果中避免指数表示法

时间:2015-02-28 18:24:19

标签: javascript mathjs

在使用mathjs的函数中,希望结果显示为1000000000000000000000000000而不是1e + 27。

我尝试了math.format()函数,但没有用。

> x = 1e+27
< 1e+27
> math.format(x, {notation: 'fixed'})
< "1e+27"
> math.format(x, {notation: 'auto', exponential: {lower: 1e-100, upper: 1e+100}})
< "1e+27"

1 个答案:

答案 0 :(得分:1)

您正在做正确的事情,您的格式示例都应该有效。

问题在于math.js在引擎盖下使用JavaScript的toPrecision,这允许最多21位数的精度。因此,当您尝试x=1e20时,它会返回您想要的输出,对于x=1e21及更大的输出,您将返回指数表示法。

我会称这是一个错误,如果math.js支持这个,那将是很好的,如果不是至少在尝试配置太大的lowerupper值时出错。我在github项目中为此创建了一个问题:https://github.com/josdejong/mathjs/issues/291