[javascript入門] 数値の長さ(桁数)を取得する方法まとめ


本投稿では、数値の長さを取得する方法の備忘録となります。今回は2パターンの取得方法をご紹介します。

数値の長さを取得する方法
  1. toString()を使ってlengthで取得する
  2. Math.ceil()とMath.log10()を組み合わせて使う

toString()を使ってlengthで取得する

数値の長さを取得する場合は、一度toString()を利用して文字列に変換し、その文字列のlengthを取得します。

const num1 = 12345;
const num2 = 543;
console.log(num1.toString().length); // 5
console.log(num2.toString().length); // 3

では、Float型の数値(小数点あり)についてはどうすれば良いでしょうか?

同じように出力した場合、ドット(.)も含まれてしまいます。

const num1 = 123.45; // 5 digits
const num2 = 532.2; // 4 digits
console.log(num1.toString().length); // 6
console.log(num2.toString().length); // 5

その場合は、以下のように表現することで、長さを取得することができます。

const num1 = 123.45; // 5 digits
const num2 = 532.2; // 4 digits
console.log(num1.toString().length - 1); // 5
console.log(num2.toString().length - 1); // 4

小数点以下の数値の数を取得したい場合は、ドットで文字列分割してその後ろの値の長さを求めます。

const num1 = 123.45; // 2 digits
const num2 = 532.2; // 1 digits
console.log(num1.toString().split('.')[1].length); // 2
console.log(num2.toString().split('.')[1].length); // 1

Math.ceil()とMath.log10()を組み合わせて使う

Math.log10()関数は、数値の10を底とした対数を返します。

∀x>0,Math.log10(x)=log10(x)=the uniqueysuch that10y=x

この仕組みを利用してMath.ceil関数を利用して最小の整数を取得します。

function getNumberLength(num) {
  return Math.ceil(Math.log10(num + 1));
}
const num1 = 12345;
const num2 = 543;
console.log(getNumberLength(num1)); // 5
console.log(getNumberLength(num2)); // 3

上記のgetNumberLength関数にて出力したMath.log10()の結果はそれぞれ「4.091526272631091」と「2.720159303405957」となります。その値に対して、ceil関数を利用して丸め込みます。

Float型では、小数点以下の数値の長さは取得できず、整数値のみとなります。

function getNumberLength(num) {
  return Math.ceil(Math.log10(num + 1));
}
const num1 = 123.45;
const num2 = 543.2;
console.log(getNumberLength(num1)); // 3
console.log(getNumberLength(num2)); // 3

\プログラミングを学びたい方におすすめ/


Udemy公式サイト

最後に

今回はjavascriptでの数値の桁数(長さ)を取得する方法をまとめました。lengthを使う方法は良く知られていますが、ちょっと工夫してMath.log10()を利用し他場合でも取得できるので、是非お試しください。