is_float

(PHP 4, PHP 5, PHP 7, PHP 8)

is_floatFinds whether the type of a variable is float

Description

function is_float(mixed $value): bool

Finds whether the type of the given variable is float.

Note:

To test if a variable is a number or a numeric string (such as form input, which is always a string), you must use is_numeric().

Parameters

value

The variable being evaluated.

Return Values

Returns true if value is a float, false otherwise.

Examples

Example #1 is_float() example

<?php

var_dump(is_float(27.25));
var_dump(is_float('abc'));
var_dump(is_float(23));
var_dump(is_float(23.5));
var_dump(is_float(1e7));  //Scientific Notation
var_dump(is_float(true));
?>

The above example will output:

bool(true)
bool(false)
bool(false)
bool(true)
bool(true)
bool(false)

See Also

  • is_bool() - Finds out whether a variable is a boolean
  • is_int() - Find whether the type of a variable is integer
  • is_numeric() - Finds whether a variable is a number or a numeric string
  • is_string() - Find whether the type of a variable is string
  • is_array() - Finds whether a variable is an array
  • is_object() - Finds whether a variable is an object

add a note

User Contributed Notes 6 notes

up
21
nonzer0value
11 years ago
Coercing the value to float and back to string was a neat trick. You can also just add a literal 0 to whatever you're checking.

<?php
function isfloat($value) {
  // PHP automagically tries to coerce $value to a number
  return is_float($value + 0);
}
?>

Seems to work ok:

<?php
isfloat("5.0" + 0);  // true
isfloat("5.0");  // false
isfloat(5 + 0);  // false
isfloat(5.0 + 0);  // false
isfloat('a' + 0);  // false
?>

YMMV
up
20
Boylett
17 years ago
If you want to test whether a string is containing a float, rather than if a variable is a float, you can use this simple little function:

function isfloat($f) return ($f == (string)(float)$f);
up
4
Anonymous
5 years ago
is_float() returns true for NAN, INF and -INF. You may want to test is_float($value) && is_finite($value), or alternatively filter_var($value, FILTER_VALIDATE_FLOAT) !== false.
up
7
kshegunov at gmail dot com
18 years ago
As celelibi at gmail dot com stated, is_float checks ONLY the type of the variable not the data it holds!

If you want to check if string represent a floating point value use the following regular expression and not is_float(),
or poorly written custom functions.

/^[+-]?(([0-9]+)|([0-9]*\.[0-9]+|[0-9]+\.[0-9]*)|
(([0-9]+|([0-9]*\.[0-9]+|[0-9]+\.[0-9]*))[eE][+-]?[0-9]+))$/
up
6
Erutan409 at Hotmail dot com
11 years ago
Boylett's solution is elegant (