比较双精度小数

3

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

1.0
1.1
1.0.01
1.0.1
2.0
2.5
3.0

如何正确比较这些数字?

我尝试了这个方法,但遇到了错误:

解析错误:在 /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个回答

5
您要寻找的函数是version_compare(),参见PHP参考手册
<?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';
}
?>

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接