PHP program to compare float values

Comparing float values in PHP requires special attention due to floating-point precision issues. Direct equality comparison (==) can fail with floats, so we use epsilon-based comparison to check if values are "close enough".

Basic Float Comparison

The most reliable method uses abs() function with a small tolerance value (epsilon) ?

<?php
$val_1 = 56.5325;
$val_2 = 90.899;
$epsilon = 0.0001;

if(abs($val_1 - $val_2) < $epsilon)
{
    echo "The values are same";
}
else
{
    echo "The values are not same";
}
?>
The values are not same

Why Direct Comparison Fails

This example demonstrates why == comparison can be unreliable with floats ?

<?php
$a = 0.1 + 0.2;
$b = 0.3;

// Direct comparison (unreliable)
if($a == $b) {
    echo "Equal using ==<br>";
} else {
    echo "Not equal using ==<br>";
}

// Epsilon comparison (reliable)
$epsilon = 0.0001;
if(abs($a - $b) < $epsilon) {
    echo "Equal using epsilon method";
} else {
    echo "Not equal using epsilon method";
}
?>
Not equal using ==
Equal using epsilon method

Comparison Function

You can create a reusable function for float comparison ?

<?php
function floatEquals($a, $b, $epsilon = 0.0001) {
    return abs($a - $b) < $epsilon;
}

$val1 = 1.00000001;
$val2 = 1.00000002;

if(floatEquals($val1, $val2)) {
    echo "Values are approximately equal";
} else {
    echo "Values are different";
}
?>
Values are approximately equal

Conclusion

Always use epsilon-based comparison for float values in PHP instead of direct equality operators. The abs() function with a small tolerance value ensures reliable comparison despite floating-point precision limitations.

Updated on: 2026-03-15T09:04:03+05:30

190 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements