javascript - 如何阻止 javascript 格式化数字?

标签 javascript math

当你在 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/

相关文章:

javascript - 我怎样才能在我的计数中显示正确的数字

c# - 为什么 Math.Cos 返回错误值?

java - 为什么它只在90°和-90°之间旋转?

javascript - VBScript 在加载时设置值

javascript - 现场采集奇怪行为?

c - 用于 RuneScape 体验的 C 数学公式

Javascript 数学函数

javascript - 脱钩客户端是什么意思?

javascript - 更改标志的标签

javascript - 从括号在Safari中打开预览