Один из способов делает это с помощью внешней функции:
elem.addEventListener('click', (function(numCopy) {
return function() {
alert(numCopy)
};
})(num));
Этот метод обматывания анонимной функции в круглых скобках и ее немедленного вызова называется IIFE (Expression Expression Function Expression)
Вы можете проверить пример с двумя параметрами в http://codepen.io/froucher/pen/BoWwgz .
catimg.addEventListener('click', (function(c, i){
return function() {
c.meows++;
i.textContent = c.name + '\'s meows are: ' + c.meows;
}
})(cat, catmeows));
Попробуйте Big Square Roots . Он использует метод Ньютона для аппроксимации решений, таких как квадратные корни.
(Возможно, это не решение для вас)
Пока ваш BigDecimal находится в диапазоне double, вы можете преобразовать BigDecimal в double, используя Math. sqrt () и переместите двойное обратно в BigDecimal. Вероятно, это будет быстрее, чем проводить расчет на BigDecimals. Во многих случаях потеря точности из-за преобразования между типами будет незначительной по сравнению с неизбежной ошибкой при вычислении квадратного корня.