以下两种情况,JavaScript 会自动将数值转为科学计数法表示(1) 小于1且小数点后面带有6个0以上的浮点数值:JavaScript 代码:0.0000003 // 3e-70.00000033 // 3.3e-70.000003 // 0.000003(2) 整数位数字多于21位:JavaScript 代码:1234567890123456789012 //1.2345678901234568e+211234567890123456789012.1 //1.2345678901234568e+21123456789012345678901 //123456789012345680000// 可以处理上面第一种情况 test((5e-7).toString()); // "0.0000005" test((5e-9).toString()); // "0.000000005" function test(val) { const e = String(val) let rex = /^([0-9])\.?([0-9]*)e-([0-9])/ if (!rex.test(e)) return val const numArr = e.match(rex) const n = Number('' + numArr[1] + (numArr[2] || '')) const num = '0.' + String(Math.pow(10, Number(numArr[3]) - 1)).substr(1) + n return num.replace(/0*$/, '') // 防止可能出现0.0001540000000的情况 }
以下两种情况,JavaScript 会自动将数值转为科学计数法表示
(1) 小于1且小数点后面带有6个0以上的浮点数值:
JavaScript 代码:
(2) 整数位数字多于21位:
JavaScript 代码: