特定のべき乗の整数値を作成する必要があります (これは正しい用語ではありませんが、基本的には 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;
}
ところで、通貨を扱うための丸め方法を作成するためにこれを行う必要がありました。私は varformated = 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;
}
}
すでに便利であることが証明されているので、これをここに含めると思いました。