我需要创建一个特定幂的整数值(这不是正确的术语,但基本上我需要创建 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;
}
}
我想我会把它包括在这里,因为它已经被证明很方便。