我有这个大数:
21212202382541035306949186015338569645685453497668055588619610488832
Javascript自动将其缩短为:
2.1212202382540943e+67
但是,由于我将其放在一个固定宽度的表格单元格中,因此数字需要少于或等于11位。
例如,如果我有上述数字,则应将其转换为:
~2.1212e+67
而且,如果数字是:
128330558031338336,则应显示~1.2833e+17
因此,基本上,如果数字的长度超过11位,则应开始添加10的幂并开始舍入该数字。
如何在JavaScript中实现此目的?
我尝试使用substring()
,但我无法确定要显示的确切幂。
编辑
最终脚本如下:
if ( num.length > 11 ) {
num = parseFloat( num );
var n = '~'+ num.toExponential( 4 );
} else {
var n = num;
}
非常感谢Black Maggie。
toExponential
. 更好的链接:http://www.ecma-international.org/ecma-262/5.1/#sec-15.7.4.6 | https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toExponential - T.J. Crowder