我想比较PHP中的两个浮点,因为内部比较容易出错,我使用了GMP库,但它给了我一个简单的比较错误。

if (gmp_cmp(0.2, 0.1) > 0) echo "First number is bigger";

错误为“gmp_cmp():无法将变量转换为gmp-类型错误”

最佳答案

如果要使用gmp,请尝试以下操作:

a = "0.2";
b = "0.1";

a_s = explode(".", $a); // split on decimal point
b_s = explode(".", $b);

if (gmp_cmp(a_s[0], b_s[0]) > 0 ||
   (gmp_cmp(a_s[0], b_s[0]) == 0 && gmp_cmp(a_s[1], b_s[1]) > 0))

   echo "First number is bigger";

这将在小数点上拆分A和B。如果a大于b(忽略小数点),则第一个数字更大。如果a和b是相同的(忽略小数),那么我们只比较小数部分,以确定a是否大于b。
希望能帮上忙

09-11 20:08