相关疑难解决方法(0)

如何避免JavaScript中大数字的科学记数法?

当数字变大时,JavaScript会将大型INT转换为科学记数法.我怎样才能防止这种情况发生?

javascript

161
推荐指数
9
解决办法
11万
查看次数

JavaScript处理大数字(BigNum)的标准解决方案是什么?

是否有一个用于JavaScript或内置的bignum库,我可以包括

<script type="text/javascript" src="the_bignum_library.js"></script>
Run Code Online (Sandbox Code Playgroud)

我认为我的用户更愿意在网页中输入数字并等待7秒才能获得结果,而不是下载可执行文件并点击一堆"此可执行文件可能会损害您的计算机"警告屏幕进行安装.

我考虑过自己的http://github.com/silentmatt/javascript-bigintegerhttp://www.mainebrook.com/john/fun/euler.html.或者你会建议从JavaScript调用Java bignum库,如apfloat?

javascript floating-accuracy bignum

50
推荐指数
1
解决办法
4万
查看次数

Java Script中的一些大数字问题

这是我面临的一个奇怪问题.当我将一些大数字传递给JS函数(自定义或内置)时,该值会自动增加1.例如,请参阅:

<!DOCTYPE html>
<html>
<body>

<p>Click the button to display an alert box.</p>

<button onclick="myFunction()">Try it</button>

<script>
function myFunction()
{
alert(10466511635124471);
}
</script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

在我看到的警报中10466511635124472,而不是10466511635124471.有人可以解释这种行为吗?

我在FF 17.0.10和Chrome 12.0.742.122以及IE 8中检查了这个.

javascript biginteger

6
推荐指数
1
解决办法
127
查看次数

Fibonacci序列 - 查找位数 - JavaScript

所以,我已经成功地编写了Fibonacci序列来创建一个array带有数字序列的序列,但我需要知道该数字的长度(多少位数)500th.

我已经尝试了下面的代码,但它找到了科学记数法的长度(22位数),而不是应该返回的正确的105.

有关如何将科学记数法转换为实际整数的任何想法?

var fiblength = function fiblength(nth) {
    var temparr = [0,1];
    for(var i = 2; i<=nth; i++){
        var prev = temparr[temparr.length-2],
            cur = temparr[temparr.length-1],
            next = prev + cur;
            temparr.push(next);
    }
    var final = temparr[temparr.length-1].toString().length;
    console.log(temparr[temparr.length-1]);
    return final;
};
a = fiblength(500);
console.log(a);
Run Code Online (Sandbox Code Playgroud)

javascript scientific-notation fibonacci notation

5
推荐指数
1
解决办法
1332
查看次数

如何在Javascript中将大数拆分为单个数字?

我目前正在通过 Euler 项目工作,目前我需要将一个 1000 位数字拆分为一个数组。

我试过这个:

var number = big number here;
var digits = number.toString().split('');
Run Code Online (Sandbox Code Playgroud)

它适用于小数字,但只要输入足够大,数组就会采用科学记数法,例如:

[ '1', '2', '3', '1', '2', '4', 'e', '+', '2', '2' ]
Run Code Online (Sandbox Code Playgroud)

有没有解决的办法?

提前致谢!

编辑:欧拉项目中的问题 8 需要(https://projecteuler.net/problem=8

javascript

5
推荐指数
1
解决办法
1681
查看次数

在javascript中添加两个大数字

我一直在尝试使用 javascript 添加以下数字; 76561197960265728+912447736

遗憾的是,由于 JavaScript 中的四舍五入,它不会得到正确的数字,我需要该数字作为字符串。

我尝试使用 substr 删除最后几位数字,然后将两个数字相加,然后将两个字符串放在一起,遗憾的是,如果第一个数字是 1,则这不起作用。

function steamid(tradelink){
    var numbers = parseInt(tradelink.split('?partner=')[1].split('&')[0]),
            base = '76561197960265728';

    var number = parseInt(base.substr(-(numbers.toString().length + 1))) + numbers;
            steamid = //put back together
}

steamid('https://steamcommunity.com/tradeoffer/new/?partner=912447736&token=qJD0Oui2');
Run Code Online (Sandbox Code Playgroud)

预期的: 76561198872713464

javascript node.js

-1
推荐指数
1
解决办法
5091
查看次数