Мне нужно создать целочисленное значение для определенной мощности (это не правильный термин, но в основном мне нужно создать 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(значение * 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;
}
}
Думал, что я включу это здесь, поскольку это оказалось удобной уже.