JS中Number.toExponential的对面

Opposite of Number.toExponential in JS(JS中Number.toExponential的对面)
本文介绍了JS中Number.toExponential的对面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在 JavaScript 中以非指数形式获取一个极大数的值.Number.toFixed 只是将它以指数形式作为字符串返回,这比我的差.

I need to get the value of an extremely large number in JavaScript in non-exponential form. Number.toFixed simply returns it in exponential form as a string, which is worse than what I had.

这是 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 方法.

I could write my own parser but I would rather use a native JS method if one exists.

推荐答案

答案是没有这样的内置函数.我搜索了高低.这是我用来将数字拆分为符号、系数(小数点前的数字)、小数部分(小数点后的数字)和指数的 RegExp:

The answer is there's no such built-in function. I've searched high and low. Here's the RegExp I use to split the number into sign, coefficient (digits before decimal point), fractional part (digits after decimal point) and exponent:

/^([+-])?(d+).?(d*)[eE]([+-]?d+)$/

自己动手"就是答案,您已经这样做了.

"Roll your own" is the answer, which you already did.

这篇关于JS中Number.toExponential的对面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)