Мне нужно создать целочисленное значение для определенной степени (это неправильный термин, но в основном мне нужно создать 10, 100, 1000 и т. Д.) "Мощность" будет указана как параметр функции. Я придумал решение, но MAN считает его хакерским и неправильным. Я хотел бы узнать лучший способ, если есть один, может быть, не основанный на строках? Кроме того, eval () не подходит.
Вот что у меня есть на данный момент:
function makeMultiplierBase(precision)
{
var numToParse = '1';
for(var i = 0; i < precision; i++)
{
numToParse += '0';
}
return parseFloat(numToParse);
}
Я также только что придумал это решение, не основанное на строках, но все еще кажется хакерским из-за цикла:
function a(precision)
{
var tmp = 10;
for(var i = 1; i < precision; i++)
{
tmp *= 10;
}
return tmp;
}
Кстати, мне нужно было сделать это, чтобы создать метод округления для работы с валютой. Я использовал var formatted = Math.round (value * 100) / 100
, но этот код появлялся повсюду, и я хотел, чтобы метод позаботился об округлении до определенной точности, поэтому я создал эту
if(!Math.roundToPrecision)
{
Math.roundToPrecision = function(value, precision)
{
Guard.NotNull(value, 'value');
b = Math.pow(10, precision);
return Math.round(value * b) / b;
}
}
мысль Я бы добавил это сюда, так как он уже оказался удобным.