JavaScriptでsprintfのフォーマット書式みたいに桁数に満たない数字の場合、 左0詰めをしてほしいのですが、それがないっぽいので調べていたところ。 こちらの記事にその式が掲載されており、 対数に対する知識が少し乏しかったので 学習がてらキモになるところ調べてみました。 ポイントとなるのは、 Math.log(x) * Math.LOG10E だと思います。これがなぜいきなり出てきているか?を解説してみます。 あとの計算は非常に簡単なので解説を割愛します。 まず数字の桁数を求める前に, 10 = 10 = pow(10,1) 100 = 10x10 = pow(10,2) 1000 = 10x10x10 = pow(10,3) と表すことができるのはわかりますよね。 powの第2引数は、指数を示しているわけですが、 この数に+1した数が桁数になっていますよね。 この指数(x)にあ