PHPプログラミング

最終更新日:
公開日:

レシピ

数値の扱い

数値の桁数を数える

数値の桁数を調べる方法について、2通り紹介します。

この記事のポイント

  • 数値の桁数を数える
  • 負の数値や小数点のある数値でも桁数を数える

目次

数値の桁数を数える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から桁数を取得することができるという仕組みです。
もし正確に桁数を取得したい場合は、こちらの方法を試してみてください。

こちらの記事は役に立ちましたか?

ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。

コメントありがとうございます!
運営の参考にさせていただきます。