当你在 JS 中运行一个巨大的总和时,它会得到类似这样的结果:1.0328135768135768e+21
。
有没有办法让它输出一个纯整数,即使它很长?
谢谢。
最佳答案
.toString()
method似乎可以解决问题。排序:
1.0328135768135768e+21.toString("10");
// "1032813576813576802460"
1.0328135768135768e+50.toString("10")
// "103281357681357664662886440420862446808642642662440"
请注意(如上所示)由于 JS 对 float 的处理,您不仅会获得末尾带零的指定数字。
如果您希望末尾全为零,您总是可以自己格式化它:
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周围的图书馆。
关于javascript - 如何阻止 javascript 格式化数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21216497/