当你在JS中运行一笔巨款时,会出现类似:1.0328135768135768e+21
的内容。
有没有办法让它输出一个纯整数,即使它很长?
感谢。
答案 0 :(得分:2)
.toString()
method似乎可以解决问题。排序:
1.0328135768135768e+21.toString("10");
// "1032813576813576802460"
1.0328135768135768e+50.toString("10")
// "103281357681357664662886440420862446808642642662440"
注意(如上所示)由于JS处理浮点数,你不只是得到你用零指定的数字。
如果你想要最后全部为零,你可以自己格式化它:
function formatNumber(n) {
var s = n + "",
a = s.split("e");
if (a.length === 1)
return s;
s = a[0].replace(/\./,"");
s += (new Array(+a[1] - s.length + 2).join("0"));
return s;
}
演示:http://jsfiddle.net/HLQQ9/(注意: 根本没有进行过彻底的测试,只是一个半生不熟的想法,我一起入侵给你一个起点。)
或者周围有几个big number个库。