比较双十进制数

时间:2011-03-11 05:06:48

标签: php decimal

我想比较有时可能有两个小数点的应用/软件的版本号,例如:

1.0
1.1
1.0.01
1.0.1
2.0
2.5
3.0

等。等。

比较这些数字的正确方法是什么?

我尝试了这个,但收到了错误:

解析错误:语法错误,第2行/home/videocoo/public_html/dev/vc-admin/test_cmp.php中的意外T_DNUMBER

$a = 1.2.11;
$b = 1.2.0;

if($a > $b){
    print"<br />a is greater";
} else {
    print"<br />b is greater";
}

将数字变成字符串,用双引号括起来是不正确的?每当我测试不同的数字时,它似乎给出了正确的比较。谢谢!

2 个答案:

答案 0 :(得分:5)

您要查找的功能是version_compare() PHP Reference

<?php
$versionA = '1.0.1';
$versionB = '1.0.2';

if (version_compare($versionA, $versionB) >= 0) {
    echo 'Version B is equal to or greater than Version A';
}

if (version_compare($versionA, $versionB, '<')) {
    echo 'Version A is less than Version B';
}
?>

答案 1 :(得分:2)

将版本号作为字符串进行比较将无效:请检查1.91.11。您可以改为使用version_comparehttp://php.net/manual/en/function.version-compare.php