定義と使い方
- PHPバージョン
- 4+
is_float()関数は、与えられた値が浮動小数点数(float)型であるかを確認します。引数として渡された値が浮動小数点数型であれば trueを返し、そうでなければ falseを返します。
浮動小数点数(float)型は
小数点を含む数値表現を行うデータ型です。
PHPでは整数や文字列も状況に応じて数値のように処理されることがありますが、浮動小数点型自体は必ず小数点を含んだ数値または小数点が含まれた数値演算における数値結果です。
基本例
/* 浮動小数点数 */
var_dump(is_float(3.14)); // bool(true)
var_dump(is_float(-10.5)); // bool(true)
var_dump(is_float(0.0)); // bool(true)
/* 整数 */
var_dump(is_float(1)); // bool(false)
var_dump(is_float(0)); // bool(false)
var_dump(is_float(-10)); // bool(false)
/* 文字列 */
var_dump(is_float('3.14')); // bool(false)
var_dump(is_float('0.0')); // bool(false)
/* 数値演算の結果 */
var_dump(is_float(1.0 + 2)); // bool(true)
var_dump(is_float(3 / 2)); // bool(true)
var_dump(is_float(5 + 2)); // bool(false)
/* 浮動小数点数の算出演算結果は float 型として処理 */
var_dump(1 + 1.0); // float(2)
var_dump(is_float(1 + 1.0)); // bool(true)
var_dump(0.5 + 0.5); // float(1)
var_dump(is_float(0.5 + 0.5)); // bool(true)
var_dump(2 * 3.5); // float(7)
var_dump(is_float(2 * 3.5)); // bool(true)
/* 型キャスト(Type Casting、型変換) */
var_dump(is_float((float) '3.14')); // bool(true)
var_dump(is_float((float) 1)); // bool(true)
参考してください!gettype()関数は、指定された値のデータ型を文字列として返します。
構文
is_float(mixed $value): bool
引数
$value |
必須。浮動小数点数(float)型を確認する値です。 |
|---|
戻り値
引数として渡された値が浮動小数点数型であれば true を返し、そうでなければ false を返します。
注意点
is_float()関数を使用する際、いくつか注意すべき点があります。
文字列'10.5'のように浮動小数点数を表す文字列は false を返します。
$float = '10.5';
var_dump(is_float($float)); // bool(false)
10.0のように小数点以下が0で表現されていてもtrueを返します。
$float = 10.0;
var_dump(is_float($float)); // bool(true)
PHPにおいて浮動小数点数の算出演算結果は浮動小数点数(float)型として処理されます。
$result = 0.5 + 0.5; // 1が予想される
var_dump($result); // float(1) => 整数(int)型ではないことに注意!
var_dump(is_float($result)); // bool(true)
PHPにおいて浮動小数点数の算出演算結果は基本的に浮動小数点数(float)型として処理されます。また、浮動小数点数と整数などを一緒に演算すると、結果は浮動小数点数として自動型変換が行われます。
$float_result = 6.0 / 2;
var_dump($float_result); // float(3)
活用例
is_float()関数は、以下のような場合に使用すると便利、または有用で
変数が浮動小数点数型であるかを確認する場合
変数が浮動小数点数型であるかを確認しようとする場合に使用されます。例えば、ユーザー入力や外部ソースから受け取ったデータの型を確認する際に有用です。
$value = 3.14;
if (is_float($value)) {
echo 'この値は浮動小数点数です。';
} else {
echo 'この値は浮動小数点数ではありません。';
}
// 出力: 'この値は浮動小数点数です。'
小数点出力の可読性向上
浮動小数点数を出力する際、ユーザーへの可読性を向上させるためにnumber_format()を使用して特定の小数点以下の桁数を指定するときに有用です。例えば、次のコードは$numberが数値型であるという仮定の下で浮動小数点数型であるかを確認し、そうであれば小数点第2位まで出力します。
$number = 3.1415926535;
if (is_float($number)) {
echo number_format($number, 2); // 出力: 3.14
} else {
echo $number;
}
このようにコードを構成すれば、入力データが浮動小数点数ではない場合には元の値を出力することになります。したがって、可読性を向上させながらも入力データの型を考慮した処理を行うことができます。