PHP,无法将浮点转换为GMP

PHP,无法将浮点转换为GMP,php,Php,我想在PHP中比较两个浮点值,因为内部比较容易出错,所以我使用了GMP库,但它在一个简单的比较中给了我错误 if (gmp_cmp(0.2, 0.1) > 0) echo "First number is bigger"; 错误为“gmp\u cmp():无法将变量转换为gmp-错误类型”如果要使用gmp,请尝试以下操作: a = "0.2"; b = "0.1"; a_s = explode(".", $a); // split on decimal point b_s = expl

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

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

错误为“gmp\u 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


希望这能有所帮助

试试gmp_cmp(“0.2”、“0.1”),IIRC参数应该是数字字符串比较两个“相等”的浮点的一种方法是将它们相减,然后检查结果的绝对值是否小于某个较小的值。@ChaseWalden不起作用。@RyanVincent,但我不是在寻找相等。您可以使用@RyanVincent描述的相同技术来检查小于或比也大。如果a-b>0,则a>b@omidh,如果这对您有效,请将其标记为答案。非常感谢。