我需要创建一个特定幂的整数值(这不是正确的术语,但基本上我需要创建 10、100、1000 等)。“幂”将被指定为函数参数。我想出了一个解决方案,但它感觉很老套而且错误。我想学习一种更好的方法,如果有一种方法,也许不是基于字符串的方法?此外,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 格式化 = 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;
}
}
我想我会把它放在这里,因为事实证明它已经很方便了。
在 ES5 及更早版本中,使用Math.pow
:
var result = Math.pow(10, precision);
var precision = 5;
var result = Math.pow(10, precision);
console.log(result);
在 ES2016 及更高版本中,使用求幂运算符 http://www.ecma-international.org/ecma-262/7.0/index.html#sec-exp-operator:
let result = 10 ** precision;
let precision = 5;
let result = 10 ** precision;
console.log(result);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)