JS 因数值过大变为科学计数法,科学计数法转换为正常数值

JS在处理数值的时候,若是数值小数位数超过6位,就会转换为科学计数法,整数的多于21位也会转为科学计数法,这问题纠结了很久,网上找了好多方法,找到几个比较靠谱的。将数值用parseFloat(num).Fixed(8)保留固定位数,但有个缺点,就是若是数值小于8位的,则会多出余数0,如:0.00000010,这样的方法对于有些人来讲显然不可取。还有一种方法就是使用正则匹配是否为科学计数法……..,原文博客:连接javascript

//将科学计数法转换为小数
function toNonExponential(num) {
    var m = num.toExponential().match(/\d(?:\.(\d*))?e([+-]\d+)/);
    return num.toFixed(Math.max(0, (m[1] || '').length - m[2]));
}