js数字转字符串后科学计数问题

发布时间 2023-12-28 17:05:09作者: 走走停停走走
前言:遇到科学计数法转字符串的问题。用如下toNonExponential可解决


function toNonExponential(num) { var m = num.toExponential().match(/\d(?:\.(\d*))?e([+-]\d+)/); return num.toFixed(Math.max(0, (m[1] || '').length - m[2])); } toNonExponential(3.3e-7) // "0.00000033" toNonExponential(3e-7) // "0.0000003" toNonExponential(1.401e10) // "14010000000" toNonExponential(0.0004) // "0.0004"

.toExponential()将数字转化为科学记数法表示,匹配正则表达式/\d(?:\.(\d*))?e([+-]\d+)/,获取科学记数法中小数点后的字符及幂指数(e 后面的值),这样可以确定数字是几位小数,再用toFixed() 转换成数值表示。

 

参考:https://wangdaodao.com/20201209/number-tostring.html