Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите разобраться с библиотекой long.js (https://javascript.ru/forum/misc/55780-pomogite-razobratsya-s-bibliotekojj-long-js.html)

chainikd 14.05.2015 07:37

Помогите разобраться с библиотекой long.js
 
Нужно посчитать факториал числа. Пока result меньше 170 то считает нормально, но когда больше, в поле выводит infinite. Нашел в инете long.js для работы с длинными числами, но не могу разобраться. Ниже в коде я пытаюсь присвоить переменной long результат функции long.js не выходит. Прошу помощи:help:
var result =1;
var r=200;
for (var i=1; i<=r; i++){
result = result * i;
};
var long = Long.fromNumber(result);
$("#text").val(long);// Вывод на текстовое поле результат

рони 14.05.2015 08:17

Цитата:

Сообщение от chainikd
long.js

что это?

chainikd 14.05.2015 09:28

я так понял что библиотека для представления 64-го числа.
https://www.npmjs.com/package/long

chainikd 14.05.2015 09:29

Может есть иные способы решить мою задачу?

рони 14.05.2015 09:41

Длинные числа, факториал
 
chainikd,
ой :)
<script>
function diff(max, min) {
    max = max.split("").reverse();
    min = min.split("").reverse();
    var len = Math.max(max.length, min.length),
        result = [];
    for (var i = 0, b = 0, c = 0; i <= len; i++) {
        b = (+max[i] || 0) + (+min[i] || 0) + c;
        result[i] = b > 9 ? (c = 1, b - 10) : (c = 0, b)
    }
    return result.reverse().join("").replace(/^0+/, "")
}

function sum(x, y) {
    var res = "0";
    for (var i = 0; i < y; i++) res = diff(res, "" + x);
    return res
}
var re = /(?=\B(?:\d{3})+(?!\d+))/g;
var result = "1";
var r = 200;
for (var i = 1; i <= r; i++) {
    result = sum(result, "" + i);
    document.write(i + " => " + result.replace(re, " ") + "<br><hr>")
};
</script>

chainikd 14.05.2015 13:42

рони,
Спасибо большое)))
Буду разбираться)


Часовой пояс GMT +3, время: 22:08.