Увеличьте 10 в степени в javascript, есть ли лучшие способы, чем этот

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

мысль Я бы добавил это сюда, так как он уже оказался удобным.

16
задан Steve K 9 June 2011 в 17:59
поделиться