Skip to content

【Big BUG】Why 439!=4.39 * 100, But 438==4.38 * 100? #9243

@gaohuazi

Description

@gaohuazi

Description

The following code:

<?php
echo 'PHP版本:' . phpversion() . "\n\n";
/*-------439-----*/
$a = 439;
$b = 4.39 * 100;

var_dump($a);
var_dump($b);
var_dump($a == $b);
echo "\n";

/*-------438-----*/
$a = 438;
$b = 4.38 * 100;

var_dump($a);
var_dump($b);
var_dump($a == $b);
echo "\n\n";
exit;

Resulted in this output:

PHP版本:7.4.26

int(439)
float(439)
bool(false)

int(438)
float(438)
bool(true)
PHP版本:8.1.0

int(439)
float(438.99999999999994)
bool(false)

int(438)
float(438)
bool(true)

php7 4 26
php8 1 0

PHP Version

PHP 8.1.0 /7.4.26

Operating System

win7 SP1

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions