PHPプログラミング

ベストプラクティス

数値の扱い

数値の桁数を数える

  • このエントリーをはてなブックマークに追加

数値の桁数を調べる方法を2つ紹介します。

目次

  1. #  数値の桁数を数える2つの方法
  2. #  strlen関数で桁数を取得
  3. #  while文で桁数を取得

数値の桁数を数える2つの方法

次のような時に活用できる方法を2通り紹介します。

  • 数値の桁数を取得したい
  • 浮動小数点数を含む数値についても桁数を取得したい

1つ目はstrlen関数を使った方法、2つ目はwhile文を使った方法です。

strlen関数で桁数を取得

もし数値が「正」で浮動小数点数が含まれていない場合は、strlen関数で簡単に桁数を取得することができます。

<?php
$number = 152351;
var_dump( strlen($number));	// int 6

もし浮動小数点数を含む場合は、次のようにうまくカウントされないので注意してください。

<?php
$number = 152351.19;
var_dump( strlen($number));	// int 9

負の数値の場合も同様に、「-」も1文字としてカウントされてしまい正しく数えることができません。

while文で桁数を取得

もし桁数を知りたい数値が「正」の整数ではない可能性がある場合、次のwhile文を使った方法で正しい桁数を数えることができます。

<?php
$number = -152351.19;
$abs = abs($number);
$i = 0;

while( 1 <= $abs ) {
	$abs /= 10;
	$i++;
}

var_dump($i);	// int 6

解説

上から順にコードの内容を解説します。

まず、abs関数を使って「絶対数」を取得します。
負の数値についても、絶対数を取得することで「-」を取り除いた数値を取得することができます。

続いて、while文の中で数値が1以下になるまで「÷10」を繰り返し実行し、その回数を$iでカウントします。

以上の処理の結果、while文を抜けると$iから桁数を取得することができるという仕組みです。
もし正確に桁数を取得したい場合は、こちらの方法を試してみてください。

  • このエントリーをはてなブックマークに追加