PHP Program to check data ypes of number

PHP provides automatic data type conversion. So, if you assign an integer value to a variable, the type of that variable will automatically be an integer. Then, if you assign a string to the same variable, the type will change to a string.

This automatic conversion can sometimes break your code.

PHP Integers

An integer is a number without any decimal part.

An integer data type is a non-decimal number between -2147483648 and 2147483647 in 32 bit systems, and between -9223372036854775808 and 9223372036854775807 in 64 bit systems. A value greater (or lower) than this, will be stored as float, because it exceeds the limit of an integer.

Here are some rules for integers:

  • An integer must have at least one digit
  • An integer must NOT have a decimal point
  • An integer can be either positive or negative
  • Integers can be specified in three formats: decimal (10-based), hexadecimal (16-based - prefixed with 0x) or octal (8-based - prefixed with 0)

PHP has the following predefined constants for integers:

  • PHP_INT_MAX - The largest integer supported
  • PHP_INT_MIN - The smallest integer supported

  • PHP_INT_SIZE -  The size of an integer in bytes

PHP has the following functions to check if the type of a variable is integer:

  • is_int()
  • is_integer() - alias of is_int()
  • is_long() - alias of is_int()

PHP Floats

A float is a number with a decimal point or a number in exponential form.

2.0, 256.4, 10.358, 7.64E+5, 5.56E-5 are all floats.

The float data type can commonly store a value up to 1.7976931348623E+308 (platform dependent), and have a maximum precision of 14 digits.

PHP has the following predefined constants for floats (from PHP 7.2):

  • PHP_FLOAT_MAX - The largest representable floating point number
  • PHP_FLOAT_MIN - The smallest representable positive floating point number
  • - PHP_FLOAT_MAX - The smallest representable negative floating point number
  • PHP_FLOAT_DIG - The number of decimal digits that can be rounded into a float and back without precision loss
  • PHP_FLOAT_EPSILON - The smallest representable positive number x, so that x + 1.0 != 1.0

PHP has the following functions to check if the type of a variable is float:

  • is_float()
  • is_double() - alias of is_float()

PHP Infinity

A numeric value that is larger than PHP_FLOAT_MAX is considered infinite.

PHP has the following functions to check if a numeric value is finite or infinite:

  • is_finite()
  • is_infinite()

PHP NaN

NaN stands for Not a Number. It is used for impossible mathematical operations.

PHP has the following functions to check if a value is not a number:

  • is_nan()

PHP Numerical Strings

The PHP is_numeric() function can be used to find whether a variable is numeric. The function returns true if the variable is a number or a numeric string, false otherwise.

PHP Casting Strings and Floats to Integers

Sometimes we need to cast a numerical value into another data type.

The (int), (integer), or intval() function is often used to convert a value to an integer.

ALGORITHM

STEP 1: Read the value

STEP 2: Check if the value is an integer type

STEP 3: Check if the value is float  or not

STEP 4: Check if the value is infinite or not

STEP 5: Check if the given value is not a number

STEP 6: Check if the given value is a number or not 

STEP 7: Cast the given float number to an integer and display the value

 

PHP Source Code

                                          <?php
$x = 9988;
var_dump($x);
echo "\n";

$x = 12.368;
var_dump($x);
echo "\n";

$x = 2.8e411;
var_dump($x);
echo "\n";

$x = acos(2);
var_dump($x);
echo "\n";

$x = "3589";
var_dump(is_numeric($x));
echo "\n";

// Cast float to int
$x = 58963.768;
$int_cast = (int)$x;
echo $int_cast;

                                      

OUTPUT

int(9988)

float(12.368)

float(INF)

float(NAN)

bool(true)

58963