【问题标题】:Printing a big integer in JavaScript?在 JavaScript 中打印一个大整数?
【发布时间】:2016-06-18 14:53:55
【问题描述】:

我正在试验一个名为BigInteger.js 的用于处理大整数的 JavaScript 库。

具体来说,我正在尝试打印一个大整数。然而,我得到了令人费解的结果。例如,当我尝试这个时:

var x= bigInt("53542885039854749852");
document.write(x+"<br>");

...我收到53542885039854750000。当我尝试这个时:

var x= bigInt("104156103156113102156118165104101120101");
document.write(x+"<br>");

...结果是1.041561031561131e+38

谁能帮我理解为什么我没有得到预期的结果?

【问题讨论】:

    标签: javascript string printing integer biginteger


    【解决方案1】:

    您可以使用toString() 方法获取包含所有数字的字符串。

    请注意,算术运算符将触发valueOf 函数而不是toString 函数。 将 bigInteger 转换为字符串时,应使用 toString 方法或 String 函数,而不是添加空字符串。

    • bigInt("999999999999999999").toString() =&gt; "999999999999999999"
    • String(bigInt("999999999999999999")) =&gt; "999999999999999999"
    • bigInt("999999999999999999") + "" =&gt; 1000000000000000000

    var x= bigInt("53542885039854749852");
    document.write(x + "<br>");             // this calls valueOf
    document.write(x.valueOf() + "<br>");
    document.write(x.toString() + "<br>");
    &lt;script src="http://peterolson.github.com/BigInteger.js/BigInteger.min.js"&gt;&lt;/script&gt;

    要计算一些东西,你可以使用类的方法。

       
    var y = bigInt("104156103156113102156118165104101120101");
    document.write(y.plus(1).toString() + "<br>");
    document.write(y.multiply(2).toString() + "<br>");
    document.write(y.plus(y).toString() + "<br>");
    &lt;script src="http://peterolson.github.com/BigInteger.js/BigInteger.min.js"&gt;&lt;/script&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-02
      • 2012-03-26
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      • 2011-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多