is_float

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

is_floatDetermina si una variable es de tipo float

Descripción

function is_float(mixed $value): bool

Determina si la variable dada es de tipo float.

Nota:

Para comprobar si una variable es un número o una cadena numérica (como las entradas de formulario, que siempre son strings), se debe utilizar la función is_numeric().

Parámetros

value

La variable a evaluar.

Valores devueltos

Retorna true si value es un float, false en caso contrario.

Ejemplos

Ejemplo #1 Ejemplo con is_float()

<?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));  //Notación científica
var_dump(is_float(true));
?>

El ejemplo anterior mostrará:

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

Véase también

  • is_bool() - Determina si una variable es un bool
  • is_int() - Determina si una variable es de tipo integer
  • is_numeric() - Determina si una variable es un número o una cadena numérica
  • is_string() - Determina si una variable es de tipo string
  • is_array() - Determina si una variable es un array
  • is_object() - Determina si una variable es de tipo objeto

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.