我需要以非指数形式在
JavaScript中获取极大数字的值. Number.toFixed只是以指数形式将其作为字符串返回,这比我的更糟糕.
这是Number.toFixed返回的内容:
>>> x = 1e+31 1e+31 >>> x.toFixed() "1e+31"
Number.toPrecision也不起作用:
>>> x = 1e+31 1e+31 >>> x.toPrecision( 21 ) "9.99999999999999963590e+30"
我想要的是:
>>> x = 1e+31 1e+31 >>> x.toNotExponential() "10000000000000000000000000000000"
我可以编写自己的解析器,但如果存在,我宁愿使用本机JS方法.
解决方法
答案是没有这样的内置功能.我搜索过高低.
这是我用来将数字分成符号,系数(小数点前的数字),小数部分(小数点后的数字)和指数的RegExp:
这是我用来将数字分成符号,系数(小数点前的数字),小数部分(小数点后的数字)和指数的RegExp:
/^([+-])?(\d+)\.?(\d*)[eE]([+-]?\d+)$/
“滚动你自己”是你已经做过的答案.